这些代码行的时间复杂度是多少?
Begin
sum = 0
For i = 1 to n do
For j = i to n do
sum = sum + 1
End
我想说O(n)= 2n ^ 2 +1,但是由于i = j部分,我不确定。
答案 0 :(得分:1)
您的答案是正确的!
嵌套循环本能地将您引向正确的答案,即O(n^2)
。在进行Big-O分析时,通常并不需要具体说明这一点,即说时间复杂度是O(2n^2)
或O(3n^2 + 1)
-说O(n^2)
就足够了,因为这是主要的该功能的任务。
i = j条件只是简单地做到了...
n
次操作(n-1)
个操作1
操作因此,您执行的所有操作之和为1 + 2 + ... n
= n(n+1)/2
,即O(n^2)
。