嵌套for循环运行时计算

时间:2012-10-21 21:41:02

标签: performance big-o

如何计算此循环的最坏情况运行时间?

for(int i=1 ; i * i < n ; i*=2)

{
     //do something
}

3 个答案:

答案 0 :(得分:1)

由于i = 0i*=2仍然会= 0,这将永久地为n > 0

运行

答案 1 :(得分:1)

让我们建立它 -

首先:

for (int i = 1; i < n; i *= 2) --> log(n)

然后:

for (int i = 1; i * i < n; i ++) --> sqrt(n)

所以,看起来你的循环会影响log(sqrt(n))

答案 2 :(得分:0)

正式地,您可以使用Sigma Notation进行如下操作:

enter image description here