从堆栈溢出的how to calculate Bubble sort Time Complexity我知道冒泡排序的最坏情况的复杂性是大的OH= n^ 2。
但我的困惑是它的产生方式
大Oh=n+n-1+n-2+1=(n(n+1))/2=O(n平方)
现在方程(n(n+1))/2=o(n m2)是矛盾的。
如果取n=10,那么(n*(n+1))/2=55,那么它为什么等于n,等于100,实际上接近它的一半,所以我们不能说它是~。
请澄清我的疑问。
最佳答案
现在方程(n*(n+1))/2=o(n^2)是矛盾的。
不,不是。
因为这不是一个等式。
实际上,O(n^2)
实际上是无穷多个函数的简写,每个函数都具有以下特性:
f(n)<=c*n^2的极限(n->无穷大…)对于某个常数C。
(有更准确的方式来说明这一点……)
直觉上,f(n)
是集合中的一员f(n)
告诉我们随着O(n^2)
变得越来越大,f(n)
与n^2
成比例地增长。
很容易证明n
是集合f(n) = (n*(n + 1))/2
的成员。
非正式地说,当O(n^2)
变得很大时,方程的n
项占主导地位,而f(n)
则消失得无足轻重。