کم هزینه ترین(از نظر حافظه )راه برای اینکه ترتیب عناصر پشته را بر عکس کنیم کدام است؟
Anonymous Quiz
10%
از طریق دو پشته اضافی
48%
از طریق یک صف اضافی
28%
از طریق یک پشته اضافی و چندین متغیر
14%
هیچ کدام
👍3👨💻3
گراف(Graphs):
هر گراف شامل دو مجموعه V و E می باشد. Vمجموعه ای متناهی و غیر تهی از راس ها و E مجموعه ای است از زوج راس ها که یال نامیده می شود.
به ترتیب (G)V و (G)E مجموعه راس ها و مجموعه یال های گراف G را نمایش می دهند.
G=(V,E)
در گراف های بدون جهت زوج راس های که هر یال را نمایش می دهند مرتب نیستند:
(u,v) = (v.u)
محدویت هایی که برای گراف تعریف می کنیم:
1-یک گراف فاقد از یک یال راس مانند v به خودش است. چنین یال هایی را خود یالی(Self edge) یا خود حلقه ای (Self loop) نیز می گویند. اگر خود یالی در گراف مجاز باشد در آن صورت یم شی داده به نام گراف خود یالی حاصل می شود.
2-در یک گراف یک یال نباید چند بار ظاهر شود. اگر این محدودیت را در نظر بگیریم دارای شی داده ای به نام گراف چند گانه(MultiGraph)خواهیم بود.
📣👨💻 @AlgorithmDesign_DataStructuer
هر گراف شامل دو مجموعه V و E می باشد. Vمجموعه ای متناهی و غیر تهی از راس ها و E مجموعه ای است از زوج راس ها که یال نامیده می شود.
به ترتیب (G)V و (G)E مجموعه راس ها و مجموعه یال های گراف G را نمایش می دهند.
G=(V,E)
در گراف های بدون جهت زوج راس های که هر یال را نمایش می دهند مرتب نیستند:
(u,v) = (v.u)
محدویت هایی که برای گراف تعریف می کنیم:
1-یک گراف فاقد از یک یال راس مانند v به خودش است. چنین یال هایی را خود یالی(Self edge) یا خود حلقه ای (Self loop) نیز می گویند. اگر خود یالی در گراف مجاز باشد در آن صورت یم شی داده به نام گراف خود یالی حاصل می شود.
2-در یک گراف یک یال نباید چند بار ظاهر شود. اگر این محدودیت را در نظر بگیریم دارای شی داده ای به نام گراف چند گانه(MultiGraph)خواهیم بود.
📣👨💻 @AlgorithmDesign_DataStructuer
👨💻2👍1
رشد کدام کدام یک از توابع زیر بیشتر می باشد؟
f(n)=3n
g(n)=20n
f(n)=3n
g(n)=20n
Anonymous Quiz
9%
f(n)
26%
g(n)
16%
بستگی به ورودی دارد
50%
هم رشداند
👨💻10👍4👎4
متد ()peekبرای نگاه کردن به شی در بالای این پشته بدون حذف آن از پشته استفاده می شود.
در زیر نحوه استفاده از آن را در برنامه میبینم:
int peek() {
return stack[top];
}
همان طور که میبیند از بالای پشته (اخرین شي که واردپشته شده است) را برمی گیرد و استفاده های زیادی می شود از این متد کرد برای اینکه می توانیم از شي درون پشته استفاده کنیم بدون اینکه آن را حذف کنیم.
📣👨💻 @AlgorithmDesign_DataStructuer
در زیر نحوه استفاده از آن را در برنامه میبینم:
int peek() {
return stack[top];
}
همان طور که میبیند از بالای پشته (اخرین شي که واردپشته شده است) را برمی گیرد و استفاده های زیادی می شود از این متد کرد برای اینکه می توانیم از شي درون پشته استفاده کنیم بدون اینکه آن را حذف کنیم.
📣👨💻 @AlgorithmDesign_DataStructuer
👍4👨💻2👎1
یکی از مثال هایی که می توان برای روش تقسیم و غلبه زد دنباله فیبونانچی می باشد. این دنبال از جمع دو عدد قبلی خود به دست می آید که کابردی های زیادی در صنعت نیز دارد که می توان در رمز گذاری , هنر , علوم رایانه , و ... اشاره کرد.
البته این الگوریتم بازگشتی که در روش تقسیم و غلبه می باشد بهیه نمی باشد زیرا مجموعه هایی هستند که چندین بار تکرار می شود برای همین اگر از عدد های بالا بخواهیم از این دنباله استفاده کنیم باعث می شود اگر ما ران کنیم زمان زیادی طول بکشد که ران شود.
📣👨💻 @AlgorithmDesign_DataStructuer
البته این الگوریتم بازگشتی که در روش تقسیم و غلبه می باشد بهیه نمی باشد زیرا مجموعه هایی هستند که چندین بار تکرار می شود برای همین اگر از عدد های بالا بخواهیم از این دنباله استفاده کنیم باعث می شود اگر ما ران کنیم زمان زیادی طول بکشد که ران شود.
📣👨💻 @AlgorithmDesign_DataStructuer
👌5👍2👨💻1
یکی از نکات مهمی که باید در مورد الگوریتم ها بدانیم این است این است که ما سوالاتی که حل میکنیم در بیشتر اوقات قابل حل می باشند ولی ممکن است در بعضی الگوریتم ها ما راه حلی هم هم بدست بیاوریم ولی به هزینه ایی که برای حل اون سوال کردیم نمی توان پایبند بود و به صرفه نمی باشد ولی الگوریتم هایی هم وجود دارند که نمی توان راه حلی برای حل آن ها به دست آورد به این الگوریتم ها سخت گفته می شود که ما زیاد با آن ها کار نداریم.
📣👨💻 @AlgorithmDesign_DataStructuer
📣👨💻 @AlgorithmDesign_DataStructuer
👨💻2
برای بدست آوردن سوالاتی که از تقسیم و غلبه به دست می آید باید عبارات زیر را به خاطر سپرده باشید.
1-Divide:
مشکل اصلی را به مجموعه ای از مسائل فرعی تبدیل می کند.
2-Conquer:
هر زیرمسئله را به صورت جداگانه و به صورت بازگشتی حل کنید.
3-Combine:
راه حل های زیرمسائل را کنار هم قرار دهید تا راه حل کل مسئله را به دست آورید.
📣👨💻 @AlgorithmDesign_DataStructuer
1-Divide:
مشکل اصلی را به مجموعه ای از مسائل فرعی تبدیل می کند.
2-Conquer:
هر زیرمسئله را به صورت جداگانه و به صورت بازگشتی حل کنید.
3-Combine:
راه حل های زیرمسائل را کنار هم قرار دهید تا راه حل کل مسئله را به دست آورید.
📣👨💻 @AlgorithmDesign_DataStructuer
👍2🤩1
👍6👨💻3
Introduction_to_Algorithms_4th_Leiserson_Stein_Rivest_Cormen_MIT.pdf
11.7 MB
یکی از بهترین کتاب هایی که در زمینه طراحی الگوریتم وجود دارد کتاب CLRSمی باشد که شما میتوانید با خواندن این کتاب خیلی از الگوریتم هایی که قبلا حال کردید با هزینه ی کمتر در این کتاب یاد بگیرید.
#طراحی_الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
#طراحی_الگوریتم
📣👨💻 @AlgorithmDesign_DataStructuer
🙏4👌3👨💻1
مرتبه اجرای بهترین الگوریتم تولید nامین جمله دنباله فیبونانچی چیست؟
Anonymous Quiz
25%
O(n)
37%
O(nlogn)
23%
O(2^n)
15%
O(logn)
👨💻4👍3
نماد Ω یک کران پایین حدی برای تابع مشخص میکند:
تعریف فارسی Ω :
Ω(g(n)) ={ f(n) : وجود دارد C , n₀ >0 , به ازای n >= n₀ : 0 <= Cg(n) <= f(n) }
نکته قابل توجه اینجا می باشد زمانی که می گوییم پیچیدگی این کد از Ω n^2 می باشد یعنی مرتبه اجرای آن n^2یا بیشتر ازn^2 می باشد.
📣👨💻 @AlgorithmDesign_DataStructuer
تعریف فارسی Ω :
Ω(g(n)) ={ f(n) : وجود دارد C , n₀ >0 , به ازای n >= n₀ : 0 <= Cg(n) <= f(n) }
نکته قابل توجه اینجا می باشد زمانی که می گوییم پیچیدگی این کد از Ω n^2 می باشد یعنی مرتبه اجرای آن n^2یا بیشتر ازn^2 می باشد.
📣👨💻 @AlgorithmDesign_DataStructuer
👏8👨💻3
👍5👨💻3🔥1
سلام دوستان
ببخشید توی این مدت نتونستم فعالیتی داشته باشم انشالله از امشب فعال خواهم بود شاید تونسته باشم کمکی به شما کرده باشم ممنون از صبر و بردباری شما عزیزان😁
ممنون میشم کانال ما رو به دوستانتون معرفی کنید.
لینک کانال 👇👇
📣👨💻 @AlgorithmDesign_DataStructuer
ببخشید توی این مدت نتونستم فعالیتی داشته باشم انشالله از امشب فعال خواهم بود شاید تونسته باشم کمکی به شما کرده باشم ممنون از صبر و بردباری شما عزیزان😁
ممنون میشم کانال ما رو به دوستانتون معرفی کنید.
لینک کانال 👇👇
📣👨💻 @AlgorithmDesign_DataStructuer
🤩6🙏3👌3👍1🎉1
تعریف سیگما.pdf
256.7 KB
👍5👨💻2👎1💯1
👍9👨💻1