Algorithms | Analysis of Algorithms | Question 1
What is time complexity of fun()?
int fun( int n) { int count = 0; for ( int i = n; i > 0; i /= 2) for ( int j = 0; j < i; j++) count += 1; return count; } |
(A) O(n^2)
(B) O(nLogn)
(C) O(n)
(D) O(nLognLogn)
Answer: (C)
Explanation: For a input integer n, the innermost statement of fun() is executed following times.
n + n/2 + n/4 + … 1
So time complexity T(n) can be written as
T(n) = O(n + n/2 + n/4 + … 1) = O(n)
The value of count is also n + n/2 + n/4 + .. + 1
Please Login to comment...