 GeeksforGeeks App
Open App Browser
Continue

# Algorithms | Analysis of Algorithms | Question 8

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