for(I = 0; I < n; I++)
for(j = I; j < n; j++)
for(k = I; k < n; k++)
statement;
外循环运行n次。 第二次循环运行(n-I)次= n(n-1)/ 2次。 第3次循环运行(n-I)次= n(n-1)/ 2次。 所以语句将运行(n(n-1)/ 2)^ 2次。 这是对的吗?
答案 0 :(得分:2)
您可以像这样计算以检查它是否正确
int Cnt = 1; // initialization
for(I = 0; I < n; I++)
for(j = I; j < n; j++)
for(k = I; k < n; k++, Cnt++)
printf ("This is the %dth time\n", Cnt);
答案 1 :(得分:0)
是O(n ^ 3) - 因为
O(n^3+AnyConst*n^2+AnyOtherConst*n+ThirdConst)=O(n^3)
O符号估计渐近行为,因为n变为无穷大,因此,只有增长最快的组件很重要。