What is time complexity of fun()?
C
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(n2)
(B)
O(n*log(n))
(C)
O(n)
(D)
O(n*log(n*Log(n)))
Answer: (C)
Explanation:
For an 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
Quiz of this Question
Please comment below if you find anything wrong in the above post