Cod*_*ogi 7 algorithm performance
给出以下代码片段:
int sum = 0;
for (int i = 1; i <= N; i++)
for (int j = 1; j <= i*i; j++)
for (int k = 1; k <= j*j; k++)
sum++;
Run Code Online (Sandbox Code Playgroud)
我的假设:
因此,总运行时间应为O(N ^ 5),对吧?
初步评论
sum(k=1,p,k^2) = p(p+1)(2p+1)/6 = O(p^3)
sum(k=1,p,k^6) = O(p^7)
Run Code Online (Sandbox Code Playgroud)
复杂度计算
k=1到运行j^2,因此它执行精确的j^2操作。j=1到运行i^2,并且在每一步我们都进行j^2操作。根据我的初步观察,通过代入p=i^2第一个方程,我们可以将总操作计算为:i^2(i^2+1)(2*i^2+1)/6对于 的每个值i。这是O((i^2)^3) = O(i^6)一些操作。i=1到运行n,并O(i^6)在每一步执行操作。所以我们有O(n^7)行动。参考