【发布时间】:2014-02-10 06:44:04
【问题描述】:
对于基于比较的排序的最坏情况,有没有办法显示最严格的上限?它不是完全依赖于实现吗?我可以很好地设计一个代码,将数组的每个元素与其他元素进行比较。它效率低下,但不会出错。
那么像最坏情况下的最严格下限(即 Ω(n log n))一样,是否也有任何最严格的上限?
【问题讨论】:
对于基于比较的排序的最坏情况,有没有办法显示最严格的上限?它不是完全依赖于实现吗?我可以很好地设计一个代码,将数组的每个元素与其他元素进行比较。它效率低下,但不会出错。
那么像最坏情况下的最严格下限(即 Ω(n log n))一样,是否也有任何最严格的上限?
【问题讨论】:
没有基于最坏情况比较的排序的下限是O(n log n)。
有关简短证明,请参阅wikipedia。
或Introduction to Algorithms 中的定理 8.1(点击顶部的下一步)。
等等,我看错了你的问题。你不能有一个最严格的上限,因为你总是可以让你的算法更复杂,但是你可以证明对于每个基于比较的排序算法,都存在一个最坏的情况,至少需要 O(n log n)(通常最多)比较进行排序。
【讨论】: