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


Quiz of this Question



My Personal Notes arrow_drop_up

Recommended Posts:



3.5 Average Difficulty : 3.5/5.0
Based on 6 vote(s)






User Actions