n + n-1 + n-2 + n-3 +(...)+ 1

时间:2017-05-30 02:38:38

标签: time-complexity big-o

我想知道......从n个元素开始的算法的复杂性是什么(我通过做任何事情来运行)。我取下一个元素,我再做一次。我取下另一个元素再做一次,直到我只剩下一个元素。 是O(n log n)?我无法想象它......

2 个答案:

答案 0 :(得分:13)

据说这位着名的数学家Gauss在小学时找到了这个确切问题的公式。正如@Henry在评论中提到的那样: enter image description here

来源:Wikipedia

当每个条目都完成工作时,每个"项目#34;都需要O(1)。因此,问题在于O(n ^ 2)。

可视化(也是Wikipedia)可以看作是半满的方块: enter image description here

答案 1 :(得分:3)

要解决O(n + n-1 + n-2 .... n次)的复杂性,我们需要使用see this link的数学公式的总和。

=> n+n+n...n times - (1+2+3...n times)
=> n^2- (n^2+n)/2

复杂度将

(n^2-n)/2
相关问题