Skip to content
Related Articles

Related Articles

Improve Article

Algorithms | Analysis of Algorithms | Question 1

  • Difficulty Level : Medium
  • Last Updated : 28 Jun, 2021

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 Articles
Page :