The running time of an algorithm is represented by the following recurrence relation:
if n <= 3 then T(n) = n else T(n) = T(n/3) + cn
Which one of the following represents the time complexity of the algorithm? <pre>
(A)
(B)
(C)
(D)
(A) A
(B) B
(C) C
(D) D
Answer: (A)
Explanation:
Answer(A)
T(n) = cn + T(n/3) = cn + cn/3 + T(n/9) = cn + cn/3 + cn/9 + T(n/27) Taking the sum of infinite GP series. The value of T(n) will be less than this sum. T(n) <= cn(1/(1-1/3)) <= 3cn/2 or we can say cn <= T(n) <= 3cn/2 Therefore T(n) =(n)
This can also be solved using Master Theorem for solving recurrences. The given expression lies in Case 3 of the theorem.