Files
912-notes/thu_dsa/chp12/quicksort.md
2019-11-17 19:55:30 +08:00

949 B
Raw Blame History

QuickSort总结

关于轴点

在原始序列中,轴点未必存在。根据轴点的定义,轴点的必要条件是轴点必然是已经就位的点。所以,在有序序列中,所有元素皆为轴点。这样,快速排序的本质,其实就是将所有元素逐个转换成轴点的过程。

QuickSort基本思路

  • 分而治之的策略类似于Mergesort
  • 但是与Mergesort不同的是Quicksort是在划分的时候做文章主要操作是划分partition操作而Mergesort划分的时候直接简单划分主要操作是合并merge操作。
  • 递归实现

轴点的构造

  • 简单取第一个元素
  • 随机选取
  • 三者取中法

划分的策略

  • 版本一:难以应对退化的情形
  • 版本二:可以处理退化,但是稳定性更差
  • 版本三:稳定性更好,但是仍然是不稳定的算法。不能应对退化情形

平均情况下时间复杂度的证明