【发布时间】:2014-02-06 11:18:52
【问题描述】:
你能解释一下如何计算时间复杂度吗?
sum=0;
for(k=1;k<=n;k*=2)
for(j=1;j<=k;j++)
sum++;
所以,我知道外循环的时间复杂度是 O(logn),但是由于内循环的迭代次数取决于外循环的值,所以这个算法的复杂度不是 O(nlogn)。
书上说是 O(n)。
我真的不明白它是如何 O(n)...有人可以解释一下吗... 如果您能详细说明一下,我将不胜感激:D
数学解决方案可以帮助我更好地理解...
【问题讨论】:
-
Nitpick:循环是 O(n log n),但不是 Theta(n log n)。我不知道是否所有的大学都做出了区分……
标签: algorithm time-complexity nested-loops logarithm