Download presentation
Presentation is loading. Please wait.
Published byEleanor Taylor Modified over 8 years ago
1
Recurrences It continues… Jeff Chastine
2
Recurrences When an algorithm calls itself recursively, its running time is described by a recurrence. A recurrence describes itself in terms of its value on smaller inputs There are four methods of solving these: substitution, iteration, recursion tree, or master method Jeff Chastine
3
What it looks like This is the recurrence of M ERGE -S ORT What this says is that the time involved is 1 if n = 1, Else, the time involved is 2 times calling on half the size of the array, plus n time to merge sorted sub-arrays T(n) = { Θ (1) 2T(n/2) + Θ (n) if n = 1 if n > 1 Jeff Chastine
4
Substitution Similar to induction Guess solution, and prove it holds true for next call Powerful method, but can sometimes be difficult to guess the solution! Jeff Chastine
5
Substitution Example: – T (n) = 2T (n/2) + n – Guess that T (n) = O(n lg n) We must prove that T (n) cn lg n | c > 0 Assume it holds for n/2 as well T (n/2) = c(n/2) lg (n/2) + n// Rewrite using n/2 T (n) 2 (c(n/2) lg (n/2)) + n// Substitution = cn lg (n/2)) + n// Math stuff = cn (lg n – lg 2) + n = cn lg n – cn + n cn lg n c 1 Note: means ‘for all’ Jeff Chastine
6
Subtleties Let T (n) = T (n/2) + T(n/2) + 1 Assume that T (n) = O(n) Then T (n/2) = c(n/2) T (n) c(n/2) + c(n/2) + 1 = cn + 1 Which does not imply T (n) cn Here, we’re correct, but off by a constant! Jeff Chastine
7
Subtleties We strengthen our guess: T (n) cn – b T (n) (c(n/2) – b) + (c(n/2) – b) + 1 = cn – 2b + 1 cn – b b > 1 Jeff Chastine
8
One Last Example Jeff Chastine
9
Iteration Method Expand out the recurrence T(n) = 3T(n/4) + n T(n) = 3(3T(n/16) + (n/4)) + n T(n) = 3((3T(n/64) + 3(n/16))+ (n/4))) + n T(n) < n + 3n/4 + 9n/16 + 27n/64 + … n Σ i=0 ∞ ( ) 3 4 i = 4n = n 1 1 - 3/4 = n 1 1 4 Jeff Chastine
10
Recursion Tree Method A recursion tree is built We sum up each level, Total cost = number of levels * cost at each level Usually used to generate a good guess for the substitution method Could still be used as direct proof Example: T (n) = 3T (n/4) + (n 2 ) Jeff Chastine
11
T(n)T(n)
12
cn 2 T(n/4) Jeff Chastine
13
cn 2 c(n/4) 2 T(n/16) Jeff Chastine
14
cn 2 c(n/4) 2 c(n/16) 2 T(1) Jeff Chastine
15
cn 2 c(n/4) 2 c(n/16) 2 T(1) cn 2 3/16 cn 2 (3/16) 2 cn 2 (n log 4 3 ) Jeff Chastine
16
Questions How many levels does this tree have? The subproblem at depth i is n/4 i When does the subproblem hit size 1? – n/4 i = 1 – n = 4 i – lg 4 n = i Therefore, the tree has lg 4 n levels The cost at each level is 3 i c(n/4 i ) 2 The last level has 3 log 4 n nodes = n log 4 3 Jeff Chastine
17
The Master's Method When it has this form: T(n) = aT(n/b) + f(n) If f (n) = Ο(n log b a-ε ) for some constant ε>0, then T (n) = Θ (n log b a ) If f (n) = Θ(n log b a ), then T (n) = Θ (n log b a lgn) If f (n) = Ω (n log b a+ε ) for some constant ε>0, then T (n) = Θ (f (n)) Jeff Chastine
18
T(n) = 9T(n/3) + n – a = 9, b = 3 thus n log b a = n log 3 9 = n 2 T(n) = T(2n/3) + 1 – a = 1, b = 3/2 thus n log b a = n log 3/2 1 = n 0 = 1 Problem: – T(n) = 2T(n/2) + nlgn Jeff Chastine
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.