【发布时间】:2020-08-03 09:49:18
【问题描述】:
Cormen 中有一个定理说... (第 8.1 节) “对于基于比较的排序技术,您无法使用算法对给定列表进行排序,在最坏的情况下,这需要的时间少于 nlogn 时间(比较)” IE。 对于基于比较的排序技术,最坏情况的时间复杂度是Omega (nlogn)...
现在我正在搜索的是,是否存在一个陈述,以防最好的情况..甚至是平均情况 其中声明如下:
你不能有一个排序算法,它花费的时间少于一些 X 来排序给定的元素列表......在最好的情况下
基本上我们有最佳案例算法的任何下限。甚至事实上对于普通情况。 (我尽力找到这个,但在任何地方都找不到)。还请告诉我我提出的观点是否值得。
【问题讨论】:
-
您应该能够推断出其中一些算法的最佳情况(提示:您能否确定数组是否已排序而至少查看所有元素? ),但更全面的列表 is given on the wiki.
-
@N.Wouda 所以你的意思是说我们不能像对 Worst case 所做的那样正式定义一个语句..?
-
任何基于比较的排序算法都可以使用代码来检查数组是否已经排序。该检查通常是浪费时间,但不会影响算法的理论时间复杂度。因此,基于比较的排序的最佳时间是检查数组是否已经排序的时间。
标签: algorithm time-complexity binary-search-tree graph-theory binary-search