我想知道,为什么这是O(n 2 )1 + 2 + 3 + ... + n?
例如,1 + 2 + 3 + 4 = 4·(4 + 1)/ 2 = 10但是4 2 = 16,那么它是怎么来的(n 2 < / SUP>)?
答案 0 :(得分:1)
在Big-O表示法中,你忘记了常数因素。
在你的例子中,S(n)= 1 + 2 + ... + n = n·(n + 1)/ 2在O(n 2 ),因为你可以找到一个常数编号c带
S(n)&lt;所有n的c·n 2 Ñ<子> 0 子>
(只需选择c = 1)
注意:Big-O表示法是上界限,即S(n)增长不快于n 2 。
另请注意,S(n)也明显增长不快于n 3 ,因此它也在O(n 3 )。
其他一些:
你也可以证明n 2 在O(S(n))中的另一种方式。
n 2 &lt; c·S(n)= c·n·(n + 1)/ 2适用于所有n的任何c≥2
因此n 2 在O(S(n))中。这意味着两个函数的增长都是相同的。你可以这样,因为S(n)在Θ(n 2 )。
答案 1 :(得分:0)
当计算O(n)n(n-1)/ 2与n ^ 2相同时,因为它具有最高的复杂度
答案 2 :(得分:0)
1 + 2 + 3 + ... + n该等式的和为n(n + 1)/ 2 意味着它是n ^ 2 + n / 2因此O(n ^ 2)。 复杂性,Big O将考虑等式中最大的因素,因为逻辑上它是需要花费大部分时间的因素。(在计算机程序中考虑它)