quicksort和heapsort都进行就地排序。哪个更好?在哪种应用和情况下首选哪种?
本文进行了一些分析。
另外,来自维基百科:
快速排序最直接的竞争对手是堆排序。堆排序通常比快速排序慢一些,但最坏的运行时间始终是Θ(nlogn)。Quicksort通常会更快,但是除了introsort变体之外,仍然存在最坏情况下的性能的机会,introsort变体会在检测到不良情况时切换到堆排序。如果事先知道有必要使用堆排序,那么直接使用它比等待内向排序切换到它要快。