Related Articles
Algorithms | Analysis of Algorithms | Question 18
• Difficulty Level : Medium
• Last Updated : 08 May, 2019

Consider the following function

``` int unknown(int n) {
int i, j, k = 0;
for (i  = n/2; i <= n; i++)
for (j = 2; j <= n; j = j * 2)
k = k + n/2;
return k;
}```

What is the returned value of the above function? (GATE CS 2013)

```(A)
(B)
(C)
(D)  ```

(A) A
(B) B
(C) C
(D) D

Explanation: In the below explanation, '^' is used to represent exponent:
The outer loop runs n/2 or Theta(n) times.
The inner loop runs (Logn) times (Note that j is multiplied by 2 in every iteration).
So the statement "k = k + n/2;" runs Theta(nLogn) times.
The statement increases value of k by n/2.
So the value of k becomes n/2*Theta(nLogn) which is Theta((n^2) * Logn).

Quiz of this Question

Attention reader! Don't stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up