GBa*_*GBa 3 sorting algorithm
对于绝对最坏情况,最快的已知排序算法是什么?我不关心最好的情况,并假设一个巨大的数据集,如果这甚至重要.
mko*_*yak 17
确保你已经看到了这个:
可视化排序算法 - 它帮助我决定使用哪种alg.
var*_*tec 9
取决于数据.例如,对于整数(或任何可以表示为整数的东西),最快的是基数排序,对于固定长度值具有最差的O(n)的复杂情况.最佳通用比较排序算法具有O(n log n)的复杂度.
Ric*_*and 7
如果使用二进制比较,则最佳排序算法需要完成O(N log N)比较.如果你正在寻找一些具有良好的最坏情况下的表现,我想看看归并和堆排序,因为它们是O(N日志N)在所有情况下的算法.
如果所有数据都适合内存,HeapSort很好,而MergeSort允许您更好地进行磁盘排序(但总体上需要更多空间).
维基百科排序算法页面上提到的其他不太知名的算法都具有O(n log n)最差情况性能.(根据mmyers的评论)
Shu*_*oUk 5
滑稽但正确: 排序网络交易空间(以实际硬件术语)优于O(n log n)排序!
如果不采用这种硬件(不太可能使用),您可以获得最佳比较类型 O(n log n)的下限
如果您的数据适合它,您可以超过n log n限制,但也要关注输入数据中的位数
Radix和Bucket可能是最着名的例子.如果没有关于您的特定要求的更多信息,那么更深入地考虑这些要求并不富有成效.
归档时间:
16 年,9 月 前
查看次数:
28570 次
最近记录:
11 年,2 月 前