מבני נתונים ואלגוריתמים - מחברת קורס/אלגוריתמים/תכנון דינאמי - דג הסלמון: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
Atavory (שיחה | תרומות)
Atavory (שיחה | תרומות)
שורה 168:
{{משפט|תוכן =
זמן הריצה של {{קוד בשורה|Min-Time(n)}} הוא <math dir = "ltr">\displaystyle \sum _{i = 1}^n [T'(k)]</math>.}}
[T'(k)]</math>.}}
 
לפני שנוכיח את המשפט הקודם, הבה נראה כיצד להשתמש בו בבעייה שבה עוסק דף זה.
שורה 177 ⟵ 176:
 
{{הוכחה|1=
מהתבוננות בקוד, אם כל קריאה רקורסיבית היא <math dir = "ltr">\displaystyle O(1)</math>, אז נקבל <math dir = "ltr">\displaystyle T'(k) = \Theta(k)</math>. לכן, במקרה זה
<math dir = "ltr">\displaystyle T'(k)\sum _{i = 1}^n [\Theta(k)</math>.] =
\Theta\left(\sum _{i = 1}^n [k]\right)
לכן, במקרה זה.
=\Theta(n^2)</math>.
}}
 
כעת נוכיח את המשפט הכללי לפתרון פונקציות בעלות memoization.
 
נצייר שוב את עץ הקריאות הרקורסיביות, אלא שעתה ניקח בחשבון את נושא הmemoization.
 
[[תמונה:Dsa dynamic programming salmon fish memoized.png|מרכז|100%|עץ הקריאות הרקורסיביות.]]