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

时间:2012-12-30 01:12:54

标签: performance sorting heapsort

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

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

1 个答案:

答案 0 :(得分:5)

我的头脑中有一些好处(在我做更多研究之后会修改这个列表:

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