我想知道......从n个元素开始的算法的复杂性是什么(我通过做任何事情来运行)。我取下一个元素,我再做一次。我取下另一个元素再做一次,直到我只剩下一个元素。 是O(n log n)?我无法想象它......
答案 0 :(得分:13)
据说这位着名的数学家Gauss在小学时找到了这个确切问题的公式。正如@Henry在评论中提到的那样:
来源:Wikipedia
当每个条目都完成工作时,每个"项目#34;都需要O(1)。因此,问题在于O(n ^ 2)。
可视化(也是Wikipedia)可以看作是半满的方块:
答案 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