确定以下算法的计算复杂度

时间:2017-03-25 04:12:16

标签: algorithm time-complexity

s = 0
for i = 1 to n3
for j = 1 to i do
s = s + 1

计算复杂性意味着什么?

2 个答案:

答案 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)。