I'm looking at a past paper, where there is the following Algorithm, and we are asked to give the runtime in O notation:
Loop2(n)
for i := 0 to n
j := 0
s := 0
while s <= i
j := j + 1
s := s + j
I can see that the outer loop (alone) is run $O(n)$ times, and that the inner loop is $O(\sqrt n)$. However, the part that confuses me is that the correct answer, according to the paper, is $O(n \cdot \sqrt n)$.
I though that, since the inner loop is dependent on $i,ドル that it would be run $\sqrt i$ times, for $i$ going from 0ドル..n$. Meaning that in total, the loop would run roughly $n$ times, making the whole algorithm $O(n\cdot n)=O(n^2)$. I kinda drew the logic from an analysis of insertion sort, where $$\sum_{i=0}^{n} n-i = O(n^2)$$
I think I remember the above correctly. Can anyone fix my broken logic here?
-
1$\begingroup$ You need more structure in your analysis; see here. There are also some examples available: algorithm-analysis+loops $\endgroup$Raphael– Raphael2016年03月31日 15:35:56 +00:00Commented Mar 31, 2016 at 15:35
1 Answer 1
The inner loop is $O(\sqrt{i}),ドル you are correct. Since $i\leq n,ドル then $\sqrt{i}\leq \sqrt{n},ドル and we have $n\times\sqrt{i}\leq n\times\sqrt{n}$. Hence the complexity is $O(n\sqrt{n})$.
-
$\begingroup$ I'm not sure I follow. The inner loop is $O(\sqrt i),ドル but since the loop is executed $n$ times, then the inner loop is essentially $\sum_{i=0}^{n} \sqrt i$. Is this just $O(\sqrt n)$? Why? $\endgroup$k4kuz0– k4kuz02016年03月31日 12:57:25 +00:00Commented Mar 31, 2016 at 12:57
-
$\begingroup$ It's a
while
inside afor
. For each $i,ドル thewhile
takes $O(\sqrt{i})$. There are $n$for
-iterations, so $O(n\sqrt{n})$. $\endgroup$Jay– Jay2016年03月31日 13:11:44 +00:00Commented Mar 31, 2016 at 13:11 -
$\begingroup$ Ah it suddenly clicked for me. Thanks. $\endgroup$k4kuz0– k4kuz02016年03月31日 13:15:27 +00:00Commented Mar 31, 2016 at 13:15
-
1$\begingroup$ Using Landau terms in nested fashion is prone to producing errors. It's better to be more explicit about the cost. $\endgroup$Raphael– Raphael2016年03月31日 15:37:03 +00:00Commented Mar 31, 2016 at 15:37
Explore related questions
See similar questions with these tags.