此代码的时间复杂度是什么:
for (i=1 to n)
for (j=1 to i^2)
if ((j mod i)==0)
for (k=1 to j)
write ("*");
我发现i,j和k之间存在这种关系: 例如n = 4所以:
i j k
1 1-1 1 k run for 1time
2 1-4 1,2,3,4 k run for 2 and 4 times
3 1-9 1,2,3,4,5,6,7,8,9 k run for 3, 6 and 9 times
4 1-16 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 k run for 4, 8, 12 and 16 times
但我无法找到它的复杂性
答案 0 :(得分:0)
j mod i = 0的出现可以忽略不计。对于前两个嵌套循环,显然复杂性是pow(i,2)从1到n的总和。所以我们可以将复杂度视为O(n ^ 3)。