对于这个伪代码,我如何用n表示Θ表示法的运行时间?
s = 0
for i = 0 to n:
for j = 0 to i:
s = (s + i)*j
print s
答案 0 :(得分:1)
赋值s =(s + i)* j具有恒定的时间复杂度Θ(1)。对于每个i,内部循环恰好执行i次,而i从0迭代到n。所以循环的主体(例如赋值)被执行 1 + 2 + 3 + ... +(n + 1)=(n + 1)(n + 2)/ 2 =Θ(n ^ 2)。
由于循环体是Θ(1),整个程序得到Θ(n ^ 2),注意到第一行和最后一行只是Θ(1)所以你可以忽略它们。