Master Theorem
Master Theorem
Here, a >= 1,
b > 1,
k >= 0 and
p is a real number.
Case-01:
Case-02:
If a = bk and
If p < -1, then T(n) = θ (nlogba)
If p = -1, then T(n) = θ (nlogba.log2n)
If p > -1, then T(n) = θ (nlogba.logp+1n)
Case-03:
If a < bk and
If p < 0, then T(n) = O (nk)
If p >= 0, then T(n) = θ (nklogpn)
Problem-01:
Solution-
Now, a = 3 and bk = 22 = 4.
Clearly, a < bk.
So, we follow case-03.
Since p = 0, so we have-
T(n) = θ (nklogpn)
T(n) = θ (n2log0n)
Thus,
T(n) = θ (n2)
Problem-02:
Solution-
Now, a = 2 and bk = 21 = 2.
Clearly, a = bk.
So, we follow case-02.
Since p = 1, so we have-
T(n) = θ (nlogba.logp+1n)
T(n) = θ (nlog22.log1+1n)
Thus,
T(n) = θ (nlog2n)
Problem-03:
Solution-
Since p = 0, so we have-
T(n) = θ (nklogpn)
T(n) = θ (n0.51log0n)
Thus,
T(n) = θ (n0.51)
Problem-04:
Solution-
So, we have-
T(n) = θ (nlogba)
T(n) = θ (nlog2√2)
T(n) = θ (n1/2)
Thus,
T(n) = θ (√n)
Problem-05:
Solution-
The given recurrence relation does not correspond to the general form of Master’s
theorem.
So, it can not be solved using Master’s theorem.
Problem-06:
Solution-
Now, a = 3 and bk = 31 = 3.
Clearly, a = bk.
So, we follow case-02.
Since p = 0, so we have-
T(n) = θ (nlogba.logp+1n)
T(n) = θ (nlog33.log0+1n)
T(n) = θ (n1.log1n)
Thus,
T(n) = θ (nlogn)
Problem-07:
Form a recurrence relation for the following code and solve it using Master’s theorem-
A(n)
{
if(n<=1)
return 1;
else
return A(√n);
}
Solution-
Let-
n = 2m ……(1)
Then-
T(2m) = T(2m/2) + 1
So, we have-
S(m) = S(m/2) +1
Now, we can easily apply Master’s Theorem.
Now, a = 1 and bk = 20 = 1.
Clearly, a = bk.
So, we follow case-02.
Since p = 0, so we have-
S(m) = θ (mlogba.logp+1m)
S(m) = θ (mlog21.log0+1m)
S(m) = θ (m0.log1m)
Thus,
S(m) = θ(logm) ……(2)
Now,
From (1), we have n = 2m.
So, logn = mlog2 which implies m = log2n.
T(n) = θ (loglog2n)