【发布时间】:2014-02-02 05:49:36
【问题描述】:
这会是什么时间复杂度:
for(k=1;K<=n;k*=2)
for(j=1;j<=k;j++)
sum++
为此,我认为
1.外循环将运行logn次
2. 内循环也将运行 logn 次。
因为我认为内循环 j 与 k 有关。所以 k 运行了多少,j 的运行时间也是如此。
所以总 = O(logn * logn)
但在文本中,他们给出了总计 = O(2n-1)。
你能解释一下吗
【问题讨论】:
-
随机注释 - 我会谨慎对待任何将运行时间列为
O(2n-1)而不立即将其列为= O(n)的材料。
标签: algorithm for-loop time-complexity