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

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


  • 110 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


فصل 2

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

Computer algorithms


Computer algorithms

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

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


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

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

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

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


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

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

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

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

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

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

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

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


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

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

  • 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


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

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


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

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


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

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


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

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


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

}

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


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

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


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

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


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

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


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

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


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

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


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


  • Login