949 B
949 B
QuickSort总结
关于轴点
在原始序列中,轴点未必存在。根据轴点的定义,轴点的必要条件是轴点必然是已经就位的点。所以,在有序序列中,所有元素皆为轴点。这样,快速排序的本质,其实就是将所有元素逐个转换成轴点的过程。
QuickSort基本思路
- 分而治之的策略,类似于Mergesort
- 但是与Mergesort不同的是,Quicksort是在划分的时候做文章,主要操作是划分partition操作;而Mergesort划分的时候直接简单划分,主要操作是合并merge操作。
- 递归实现
轴点的构造
- 简单取第一个元素
- 随机选取
- 三者取中法
划分的策略
- 版本一:难以应对退化的情形
- 版本二:可以处理退化,但是稳定性更差
- 版本三:稳定性更好,但是仍然是不稳定的算法。不能应对退化情形