【发布时间】:2013-06-02 22:40:41
【问题描述】:
我正在尝试使用大 O 表示法来计算 for 循环的复杂性。我以前在其他课程中也这样做过,但是这个比其他的更严格,因为它是在实际算法上的。代码如下:
for(i=n ; i>1 ; i/=2) //for any size n
{
for(j = 1; j < i; j++)
{
x+=a
}
}
指令 x+=a 总共执行了 n + n/2 + n/4 + ... + 1 次。
G.P. 的第一个 log2n 项的总和。起始项 n 和共同比率 1/2 为 (n (1-(1/2)log2n))/(1/2)。因此第一个代码片段的复杂度是 O(n)。
正确吗?
【问题讨论】:
-
这似乎与您之前的问题相同。请不要发布重复的问题。谢谢!
标签: c complexity-theory big-o