是不是在实践中使用了heapsort?

PhD*_*PhD 8 sorting performance heapsort

Quicksort在实践中胜过Heapsort.Mergesort是3个中唯一稳定的(在普通的香草实现中).因此,它可以根据手头的情况(在内存中的就地或外部排序等)使用快速排序或合并排序.

那么有没有一种情况,堆数据结构确实用于排序?无论我有多么"谷歌"或尝试提出应用程序,几乎总是选择合并/快速排序.我从来没有遇到过在我的职业生涯中实际使用堆排序的情况.出于好奇心,在实践中(如果有的话)heapsort实际上是一个很好的用例?

Dav*_*nco 5

一些好处从我的头脑中消失(在我做更多研究之后将修改此列表:

  • 几乎排序的集合受益于按照heapsort排序.
  • 空间敏感的环境通常更喜欢堆的O(1)空间复杂性.想想嵌入式系统.
  • 大量数据集受益于O(nlog n)的保证运行时间,而不是快速排序可能更好的运行时间.考虑医疗,空间,生命支持等