Time complexity n+;n-1+;n-2+;n-3+;(……)&x2B;1.

Time complexity n+;n-1+;n-2+;n-3+;(……)&x2B;1.,time-complexity,big-o,Time Complexity,Big O,我在想。。一个以n个元素开始的算法的复杂度是多少。我去掉一个元素,再做一次。。我去掉另一个元素,再做一次,直到只剩下一个元素。 是O(n log n)吗?我无法想象……据说这位著名的数学家在小学时就已经找到了解决这个精确问题的公式。正如@Henry在评论中提到的: 资料来源: 由于每个条目都完成了工作,即每个“项目”都需要O(1)。因此,问题在O(n^2)中 可视化(也)可以看作是一个半填充的正方形: 为了解决O(n+n-1+n-2…n次)的复杂性,我们需要使用数学公式的和 复杂性将是 (n^

我在想。。一个以n个元素开始的算法的复杂度是多少。我去掉一个元素,再做一次。。我去掉另一个元素,再做一次,直到只剩下一个元素。 是O(n log n)吗?我无法想象……

据说这位著名的数学家在小学时就已经找到了解决这个精确问题的公式。正如@Henry在评论中提到的:

资料来源:

由于每个条目都完成了工作,即每个“项目”都需要O(1)。因此,问题在O(n^2)中

可视化(也)可以看作是一个半填充的正方形:

为了解决O(n+n-1+n-2…n次)的复杂性,我们需要使用数学公式的和

复杂性将是

(n^2-n)/2

听起来像是
!n
,或
三角形(n)
。这个和是n(n+1)/2,所以它是O(n^2)@Henry,而我同意这个和,这里有n个项,所以它是O(n),而不是O(n^2)。@LorenPechtel no,“我做任何事情都要做”意味着你只为第一个项做O(n)工作。总的来说,这给出了O(n^2)。我把它理解为以某种方式处理这个术语,而不是处理那么多次的东西。很好的答案和可视化链接,真的很有帮助:)n平方就是给出最终答案的公式。这是如何使算法的时间复杂度降低的。例如,如果将输入乘以2(也称为将其缩放为其大小的两倍),则最终结果是n平方的两倍。因此,当您增加输入时,最终结果将根据您增加输入的因子进行缩放。这不是线性的吗?注意,上面的链接来自de.wikipedia.org。在Chrome on PC中,你可以点击翻译按钮(在Chrome的URL右侧)阅读英文页面。我能找到的最接近的英文维基百科条目:@Gamepad.Coder thx为此,我添加了您的第二个参考,因为我也没有找到德语维基网站的翻译版本。@adityah常量与复杂性评估无关,即严格来说,可以忽略常量因子的缩放,你不应该去掉常数,只留下主导项吗?因此,
(n^2-n)/2
的复杂性最终将达到
n^2
O(n^2)
。换句话说,说复杂性将是
(n^2-n)/2
是不正确的。
(n^2-n)/2