Algorithms | Analysis of Algorithms | Question 1

What is time complexity of fun()?

filter_none

edit
close

play_arrow

link
brightness_4
code

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;
}

chevron_right


(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