1 / 16

طراحي الگوريتم ها

فصل 2. طراحي الگوريتم ها. Computer algorithms. Computer algorithms. الگوریتم های بازگشتی الگوریتم های غیر بازگشتی(ترتیبی). محاسبه زمان الگوریتم بازگشتی. زمان حل زیر مساله زمان شکستن مساله به زیر مسائل زمان لازم برای ادغام جوابهای زیر مسائل. مراحل الگوریتم بازگشتی. 1- عمل فراخوانی

marcel
Télécharger la présentation

طراحي الگوريتم ها

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. فصل 2 طراحي الگوريتم ها Computer algorithms

  2. Computer algorithms • الگوریتم های بازگشتی • الگوریتم های غیر بازگشتی(ترتیبی)

  3. محاسبه زمان الگوریتم بازگشتی • زمان حل زیر مساله • زمان شکستن مساله به زیر مسائل • زمان لازم برای ادغام جوابهای زیر مسائل

  4. مراحل الگوریتم بازگشتی • 1- عمل فراخوانی • قرارگیری متغیرهای محلی و مقادیر آنها و آدرس بازگشت در پشته • انتقال پارامترها • انتقال کنترل برنامه به ابتدای پردازه جدید • 2- بازگشت از یک فراخوانی • قرارگیری متغیرهای محلی از پشته به خود متغیر • آدرس بازگشت و ادامه اجرا

  5. کارایی بازگشتی • تکرار محاسبه یک مقدار بالاخص در حالت درختی • Another Reason for Slowdowns [Tree Recursion] • Traditional Recursion doesn’t save answers as it executes • Fib(5) = Fib(4) + Fib(3) = Fib(3) + Fib(2) + Fib(3) = Fib(2) + Fib(1) + Fib(2) + Fib(3) = Fib(1) + Fib(0) + Fib(1) + Fib(2) + Fib(3) = Fib(1) + Fib(0) + Fib(1) + Fib(1) + Fib(0) + Fib(3) = Fib(1) + Fib(0) + Fib(1) + Fib(1) + Fib(0) + Fib(2) + Fib(1) = Fib(1) + Fib(0) + Fib(1) + Fib(1) + Fib(0) + Fib(1) + Fib(0) + Fib(1) • Solution: Dynamic programming – saving answers as you go and reusing them

  6. مسئله فاکتوریل طراحی الگوریتم

  7. پیمایش خطی: چگونگی پیمایش تابع fact طراحی الگوریتم

  8. مسئله محاسبه جمله nام سری فیبوناچی طراحی الگوریتم

  9. پیمایش درختی : چگونگی فراخوانی بازگشتی تابعfib طراحی الگوریتم

  10. غیر بازگشتیFibonacci int fibonacci(int input) { int first = 1; int second = 1; int temp; for (int k = 0; k < input; k++) { temp = first; first = second; second = temp + second; } return first; } طراحی الگوریتم

  11. مقایسه الگوریتم بازگشتی و غیر بازگشتی فیبوناچی طراحی الگوریتم

  12. الگوريتم بازگشتي پيدا كردن يك عنصر از ليست (جستجوي ترتيبي) طراحی الگوریتم

  13. مثال: عدد 82 را در لیست زیر جستجو کنید: طراحی الگوریتم

  14. مسئله برج هانوی طراحی الگوریتم

  15. چگونگی فراخوانی تابع هانوی طراحی الگوریتم

  16. طراحی الگوریتم

More Related