The solution says that the instruction
while (var < n)
is executed <= n*log(n)
times. I am not able to follow why that be the case. According to be, it should be no more than log(n)
times.
The solution says that the instruction
while (var < n)
is executed <= n*log(n)
times. I am not able to follow why that be the case. According to be, it should be no more than log(n)
times.
Hi Rajiv,
Thanks for reaching out!
As you may see in the code:
while(var < n) {
System.out.println("Pie: " + pie);
//O(?)
for (int j = 0; j <= var; j++) {
sum++;
}
var*=2;
} //end of while loop
The outer loop while (var < n)
runs log(n)
times because var
increments by doubling (var * 2
) each time.
Meanwhile, the inner for
loop runs no more than n
times.
Therefore, the combined complexity of the snippet becomes nlog(n)
.
We have updated the existing solution for your better understanding.
Hope you got your ambiguities removed.
If you have any further questions/suggestions/feedback, we’ll be happy to hear!
Thanks and Regards,
Lubaina Khan | Developer Advocate
Please update the page