【发布时间】:2016-07-12 13:52:26
【问题描述】:
从how to calculate Bubble sort Time Complexity 堆栈溢出我知道冒泡排序的最坏情况的复杂性是 Big Oh = n^2
但我的困惑是它的派生方式是
大哦 = n + n - 1 + n - 2 ... + 1 = (n(n + 1))/2 = O(n²)
现在方程 (n(n + 1))/2 = O(n²) 是矛盾的。
如果我取 n=10 那么 (n*(n + 1))/2 = 55 那么它为什么等于 n² 得出的结果是 100 它实际上接近它的一半所以我们不能说它是~.
请解开我的疑惑。
【问题讨论】:
-
你应该学习O的定义
-
从您提出的问题中,我感觉到您不熟悉大 O 表示法。在此站点上快速搜索以获取更多信息,看看是否对您有帮助。我可以确认这个数学确实是正确的。 :-)
-
“(n*(n + 1))/2 = O(n^2) 是矛盾的。”这是错误的,并不矛盾:
(n*(n + 1))/2是 in,不等于,O(n^2)。 -
@LoneWolf 如果用户回答了您的问题,请同时接受他的回答 (Accepting Answers: How does it work?)。如果不是,请说明什么仍未得到答复,这是 StackOverflow 的一个非常重要的部分,非常感谢。
标签: java algorithm sorting big-o