快速排序最坏情况下的复杂性改进,而无需将其转换为mergsort

时间:2019-05-26 15:09:55

标签: sorting quicksort

能否通过修改O(n2)将快速排序的最坏情况下的时间复杂度从O(nlogn)更改为(without converting it to mergsort)

1 个答案:

答案 0 :(得分:0)

通常,如果递归或分区拆分的数量太大,则切换到堆排序,可以避免最坏的情况,因为堆排序也已存在。

https://en.wikipedia.org/wiki/Introsort

避免最坏情况行为的另一种方法是使用中位数的中位数,尽管它比较慢。

https://en.wikipedia.org/wiki/Median_of_medians

如本文所述,它可以是一种混合快速排序,当递归级别变得过多时,它会切换为中位数。

https://en.wikipedia.org/wiki/Introselect