堆栈类型未在C ++库

时间:2017-10-01 14:53:37

标签: c++ sorting quicksort heapsort

由于堆排序在所有情况下都具有O(nlogn)的时间复杂度,即最佳情况,平均情况和最差情况。 虽然快速排序在最坏的情况下具有O(n2)的时间复杂度。

然后,尽管在最坏的情况下复杂性较低,为什么堆排序没有在C ++库中实现而不是快速排序。

1 个答案:

答案 0 :(得分:2)

与快速排序相比,堆排序。当然,一个vanilla quicksort也很慢,但是通过使用insert-sort和一些回退可以非常快速地使用范围的一部分对于quicksort来说不是最理想的罕见情况。实际上std::sort()是一种混合算法。有关详细信息,请参阅我的Quicker Sorting演示文稿。