Open in App
Not now

# Algorithms | Analysis of Algorithms | Question 8

• Difficulty Level : Medium
• Last Updated : 12 Feb, 2013

What is the time complexity of the below function?

## C

 `void` `fun(``int` `n, ``int` `arr[])` `{` `    ``int` `i = 0, j = 0;` `    ``for` `(; i < n; ++i)` `        ``while` `(j < n && arr[i] < arr[j])` `            ``j++;` `}`

(A)

O(n)

(B)

O(n2)

(C)

O(n*log(n))

(D)

O(n*log(n)2)

Explanation:

At first look, the time complexity seems to be O(n2) due to two loops. But, please note that the variable j is not initialized for each value of variable i. So, the inner loop runs at most n times. Please observe the difference between the function given in the question and the below function:

## C

 `void` `fun(``int` `n, ``int` `arr[])` `{` `    ``int` `i = 0, j = 0;` `    ``for` `(; i < n; ++i) {` `        ``j = 0;` `        ``while` `(j < n && arr[i] < arr[j])` `            ``j++;` `    ``}` `}`

Quiz of this Question
Please comment below if you find anything wrong in the above post

My Personal Notes arrow_drop_up
Related Articles