فصل 2
This presentation is the property of its rightful owner.
Sponsored Links
1 / 16

طراحي الگوريتم ها PowerPoint PPT Presentation


  • 98 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


5628017

فصل 2

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

Computer algorithms


5628017

Computer algorithms

  • الگوریتم های بازگشتی

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


5628017

محاسبه زمان الگوریتم بازگشتی

  • زمان حل زیر مساله

  • زمان شکستن مساله به زیر مسائل

  • زمان لازم برای ادغام جوابهای زیر مسائل


5628017

مراحل الگوریتم بازگشتی

  • 1- عمل فراخوانی

    • قرارگیری متغیرهای محلی و مقادیر آنها و آدرس بازگشت در پشته

    • انتقال پارامترها

    • انتقال کنترل برنامه به ابتدای پردازه جدید

  • 2- بازگشت از یک فراخوانی

    • قرارگیری متغیرهای محلی از پشته به خود متغیر

    • آدرس بازگشت و ادامه اجرا


5628017

کارایی بازگشتی

  • تکرار محاسبه یک مقدار بالاخص در حالت درختی

  • 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


5628017

مسئله فاکتوریل

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


5628017

  • پیمایش خطی: چگونگی پیمایش تابع fact

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


5628017

  • مسئله محاسبه جمله nام سری فیبوناچی

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


5628017

پیمایش درختی : چگونگی فراخوانی بازگشتی تابعfib

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


Fibonacci

غیر بازگشتی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;

}

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


5628017

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

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


5628017

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

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


5628017

مثال: عدد 82 را در لیست زیر جستجو کنید:

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


5628017

مسئله برج هانوی

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


5628017

چگونگی فراخوانی تابع هانوی

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


5628017

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


  • Login