CS 332: Algorithms: Merge Sort Solving Recurrences The Master Theorem
CS 332: Algorithms: Merge Sort Solving Recurrences The Master Theorem
CS 332: Algorithms: Merge Sort Solving Recurrences The Master Theorem
Merge Sort
Solving Recurrences
The Master Theorem
A = {10, 5, 7, 6, 1, 4, 8, 3, 2, 9};
Statement Effort
MergeSort(A, left, right) { T(n)
if (left < right) { (1)
mid = floor((left + right) / 2); (1)
MergeSort(A, left, mid); T(n/2)
MergeSort(A, mid+1, right); T(n/2)
Merge(A, left, mid, right); (n)
}
}
So T(n) = (1) when n = 1, and
2T(n/2) + (n) when n > 1
So what (more succinctly) is T(n)?
0 n=0 0 n=0
s ( n) = s ( n) =
c + s(n − 1) n 0 n + s(n − 1) n 0
n =1
c c n =1
T ( n) = T ( n) =
2T + c n 1
n n
2 aT + cn n 1
b
David Luebke 11 2023-01-02
Solving Recurrences
Substitution method
Iteration method
Master method
i
i = n − k +1
+ s(n − k )
i
i = n − k +1
+ s(n − k )
What if k = n?
i
i = n − k +1
+ s(n − k )
What if k = n?
n
n +1
n
i =1
i + s(0) = i + 0 = n
i =1 2
i
i = n − k +1
+ s(n − k )
What if k = n?
n
n +1
n
i =1
i + s(0) = i + 0 = n
i =1 2
Thus in general
n +1
s ( n) = n
2