متد ()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
زمان اجرای برخی توابع به ازای ورودی های مختلف که همان طوری که می بینید پیچیدگی میتواند چه قدر اهمیت در اجرای برنامه داشته باشد.
📣👨💻 @AlgorithmDesign_DataStructuer
📣👨💻 @AlgorithmDesign_DataStructuer
🤔5👍4🔥1👨💻1
BubbleSort:
یک الگوریتیم برای مرتب سازی ارایه ها وجود دارد که در بالا ان را مشاهده می کنید این الگوریتم به این صورت عمل می کند که دو حلقه for وجورد دارید حلقه اول عدد در اندیس i را میگیرد و در حلقه دوم با تمام اعداد در کل ارایه مقایسه می کند اگر لازم باشد جا به جایی صورت میگیرد و در غیر این صورت به مقایسه ادامه می دهد تا به آخر ارایه برسد.
پیچیدگی زمانی این الگوریتم در بدترین و میانگین حالت n^2 می باشد و در بهترین حالت نیز میتواند پیچدگی nرا نیز داشته باشد. این الگوریتم مناسبی برای مرتب سازی نمی باشد زیرا ما دنبال الگوریتم هایی هستیم که با پیچیدگی زمانی کمتری نیز داشته باشد.
📣👨💻 @AlgorithmDesign_DataStructuer
یک الگوریتیم برای مرتب سازی ارایه ها وجود دارد که در بالا ان را مشاهده می کنید این الگوریتم به این صورت عمل می کند که دو حلقه for وجورد دارید حلقه اول عدد در اندیس i را میگیرد و در حلقه دوم با تمام اعداد در کل ارایه مقایسه می کند اگر لازم باشد جا به جایی صورت میگیرد و در غیر این صورت به مقایسه ادامه می دهد تا به آخر ارایه برسد.
پیچیدگی زمانی این الگوریتم در بدترین و میانگین حالت n^2 می باشد و در بهترین حالت نیز میتواند پیچدگی nرا نیز داشته باشد. این الگوریتم مناسبی برای مرتب سازی نمی باشد زیرا ما دنبال الگوریتم هایی هستیم که با پیچیدگی زمانی کمتری نیز داشته باشد.
📣👨💻 @AlgorithmDesign_DataStructuer
👍6👨💻2