The document discusses the Master Theorem, which provides a method for solving recurrence relations that arise in algorithm analysis. It gives examples of applying the Master Theorem to different recurrence relations. The Master Theorem breaks problems into subproblems of size 1/b the original, takes T(n/b) time to solve one subproblem and a*T(n/b) time total. It accounts for additional f(n) time to divide and combine. Based on how f(n) compares to a*T(n/b), problems fall into one of three cases with different solutions.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
46 views9 pages
Algorithm Analysis and Design: Master Theorem
The document discusses the Master Theorem, which provides a method for solving recurrence relations that arise in algorithm analysis. It gives examples of applying the Master Theorem to different recurrence relations. The Master Theorem breaks problems into subproblems of size 1/b the original, takes T(n/b) time to solve one subproblem and a*T(n/b) time total. It accounts for additional f(n) time to divide and combine. Based on how f(n) compares to a*T(n/b), problems fall into one of three cases with different solutions.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9
Algorithm Analysis and Design
Master Theorem Master Theorem • Master method is based on the master theorem.
Source: CLRS Master Theorem
• What does it all mean?
• T(n) is the running time on a problem of size n. • If we divide the problem into a subproblems, each of which is 1/b the size of the original problem. (a does not have to equal b). • It takes T(n/b) time to solve one subproblem, and a.T(n/b) to solve all of them. • f(n) represents the additional time to (first) divide the problem and (then) to combine the solutions to the subproblems. Master Theorem
Example 1: T(n) = 9T(n/3) + n
a = 9, b = 3, 𝑓 𝑛 = 𝑛 𝑛log𝑏 𝑎 = 𝑛2 𝑓 𝑛 = 𝑛 = 𝑛2−1 We have Case 1. So, T(n) = 𝜃(𝑛log𝑏 𝑎 ) = 𝜃(𝑛2 ) Master Theorem
Example 2: T(n) = T(2n/3) + 1
a = 1, b = 3/2, 𝑓 𝑛 = 1 𝑛log𝑏 𝑎 = 𝑛0 = 1 𝑓 𝑛 =1 We have Case 2. So, T(n) = 𝜃 𝑛log𝑏 𝑎 lg 𝑛 = 𝜃(lg 𝑛) = 𝜃 log 2 𝑛 Master Theorem
Example 3: T(n) = 3T(n/4) + n lg n
a = 3, b = 4, 𝑓 𝑛 = 𝑛 lg 𝑛 𝑛log𝑏 𝑎 = 𝑛0.793 𝑓 𝑛 = 𝑛 lg 𝑛 = Ω(𝑛) We might have Case 3. Is a.f(n/b) ≤ c.f(n) for some c < 1 and large n? Is 3f(n/4) ≤ f(n)? 3(n/4) lg (n/4) ≤ 3(n/4) lg n = (3/4) n lg n. c = 3/4. So, we have Case 3. T(n) = 𝜃 𝑓(𝑛) = 𝜃(𝑛 lg 𝑛) Master Theorem
Example 4: T(n) = 2T(n/2) + n lg n
a = 2, b = 2, 𝑓 𝑛 = 𝑛 lg 𝑛 𝑛log𝑏 𝑎 = 𝑛1 = 𝑛 𝑓 𝑛 = 𝑛 lg 𝑛 = Ω(𝑛) We might have Case 3. Is a.f(n/b) ≤ c.f(n) for some c < 1 and large n? Is 2f(n/2) ≤ f(n)? 2(n/2) lg (n/2) = n lg (n/2) = n(lg n – 1) = n lg n – n. Is n lg n – n ≤ 0.999 n lg n (for example)? Not after a certain n. So, we don’t have Case 3. Master theorem does not apply. Master Theorem Example 5: Finally, let’s construct the recurrence for binary search. • At each step, we divide problem into two pieces, but proceed with only one of these pieces. So, a = 1. • The size of a piece is half the size of the previous piece. So, b = 2. • Dividing takes constant time. There is no combining. So, f(n) = θ(1). T(n) = T(n/2) + 1 𝑛log𝑏 𝑎 = 𝑛0 = 1 𝑓 𝑛 = θ(1) We have Case 2. So, T(n) = 𝜃 𝑛log𝑏 𝑎 lg 𝑛 = 𝜃(lg 𝑛) References