s = 0
for i = 1 to n3
for j = 1 to i do
s = s + 1
计算复杂性意味着什么?
答案 0 :(得分:1)
假设此代码中的每个操作i都需要恒定的时间c i 。然后运行时间可用总和c 1 + c 2 * n3 + c 3 * i * n3 + c 表示4 * i * n3。我们认为常系数是无关紧要的,因为无论输入如何,它们只贡献一个常数值。这给出了Θ(1)+Θ(n3)+Θ(i * n3 + 1)+Θ(i * n3)。所以在这种情况下,时间复杂度是Θ(n3!),也就是说这个算法在阶乘时间内运行。
答案 1 :(得分:0)
只计算一些值(对于i的每次迭代执行s = s + 1的次数并总结)并看看你得到了什么:
1 + 2 + 3 + ... + n = n *(n + 1)/ 2 = n ^ 2/2 + n / 2 =>复杂度O(n ^ 2)。