找到大哦特征
input: n
s<-0
for i<-1 to n^2 do
for j<-1 to i do
s<-s+i
两个循环迭代n^2
次。我不确定是否应该添加或增加循环。现在我认为答案是O(n^4)
。
答案 0 :(得分:4)
外部循环i
从0到n^2
,而内部循环j
从1到i
。
因此,内环具有i
的复杂性(内环需要i
步,i
是变化的)。让我们用IL(i)=i
表示内循环的运行时间。
为了获得总运行时间,我们看到内部循环使用不同的“参数”n^2
执行i
次。因此,我们获得总运行时间:
n^2 n^2
---- ----
\ IL(i) = \ i
/ /
---- ----
i=1 i=1
也就是说,您必须将从1到n^2
的所有数字相加。有许多基本教科书解释如何评估这一点。
结果为(n^2)(n^2+1)/2
,导致O(n^4)
的复杂性过高。
答案 1 :(得分:2)
你说得对,答案是O(n^4)
。首先内圈成本i
。然后外部循环花费sum(1->p) i = p(p-1)/2
,其中p=n^2
。这给出了O(n^4)
答案 2 :(得分:2)
您的论点几乎正确。
循环迭代次数:
1 + 2 + ... + n^2
= (n^2+1)*(n^2)/2
= (n^4 + n^2)/2
所以答案是Θ(n^4)
(作为旁注,它也是O(n^4)
)。
您可以通过选择三个常量c1
,c2
和n0
来正式证明:
c1*n^4 <= (n^4 + n^2)/2 <= c2*n^4 forall n >= n0
答案 3 :(得分:0)
由于i
的最大值为n^2
,因此我们O(n^2) * O(n^2)
等于O(n^4)
。
答案 4 :(得分:0)