【发布时间】:2016-05-20 22:40:30
【问题描述】:
这是伪代码:
for i=1 to n
for j=1 to n
for k=1 to j
x = x+1
我必须计算这两件事(i)精确计算(ii)找到它大O
在(i)中,我的最终答案是n^4+2n^3+5n^2+4n+2。 (ii)中,因为有三个循环,所以是O(n^3);
似乎 (i) 或 (ii) 肯定有错误,因为 (i) 提高到 4 次方,而大 O 只是 3。
这是我计算迭代次数的步骤:
for(i=1; i <=n; i++)
算作 1+(n+1)+n 即 (2n+2)。
所以,(2n+2)+n(2n+2)+n(4+6+8+...+2n+2)+n^2(1+2+3+...+n )(2) 最终得到 n^4(参见最后一项,AS * n 的总和)。
【问题讨论】:
-
您在 (i) 中的计算不正确。它是
O(n^3),所以它不能有n^4术语
标签: loops for-loop iteration big-o counting