【发布时间】:2013-05-20 20:25:23
【问题描述】:
我正在尝试使用大 O 表示法来计算 for 循环的复杂性。我以前在其他课程中也这样做过,但是这个比其他的更严格,因为它是在实际算法上的。代码如下:
for(i=n ; i>1 ; i/=2) //for any size n
{
for(j = 1; j < i; j++)
{
x+=a
}
}
我知道第一个循环是 O(log_2(n))。至于第二个循环,我有点失落!感谢您在分析中的帮助。
【问题讨论】:
-
如何简化总和
n + n/2 + n/4 + ...? -
@OliCharlesworth 我不明白
n + n/2 + n/4 + ...等于nlogn -
@Rüppell'sVulture:没有。
-
@Rüppell'sVulture:大概是因为有些人(错误地)认为这是正确的答案。
-
@OliCharlesworth 如果是
O(n),那也是O(n*log n),所以没有错。