我试图找出使用Big 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))。至于第二个循环,我有点迷路!感谢分析方面的帮助。
答案 0 :(得分:4)
答案 1 :(得分:2)
内环的迭代总数是n + n / 2 + n / 4 + ... + 1,约为2n。所以复杂性是O(n)。
答案 2 :(得分:2)
复杂性应为O(n)
。它形成一个几何系列(不完全但大致)。
循环运行n+ n/2 + n/4 + .... +1
,约为2n
。
O(2n) = O(n)
。