这个for循环语句的运行时间?

时间:2013-02-03 00:39:44

标签: algorithm big-o time-complexity

我试图弄清楚这个循环语句的Big-O运行时间。有人可以帮助我吗?

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

O(n^2 lg n)吗?

3 个答案:

答案 0 :(得分:2)

不,它应该是O(logn)。因为log(n^2) = O(logn)

答案 1 :(得分:2)

其O(登录):

log(n^2) = 2log(n) = O(logn) 

答案 2 :(得分:1)

建议的答案是正确的; “是O(logn),因为你的迭代增量是多项式(1,4,8,16等......),而不是线性的。

你可以这样看 - 迭代次数不是线性的,而是多项式,它与迭代量成对比。虽然迭代次数是二次的,但在循环执行期间它是constat,因此可以忽略2中的量词2*O(logn)