فصل 2
Download
1 / 16

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


  • 139 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' طراحي الگوريتم ها' - marcel


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


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

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


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


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


پیمایش درختی : چگونگی فراخوانی بازگشتی تابع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;

}

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


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

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


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

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


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

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


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

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


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

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



ad