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

27 lines
949 B
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
QuickSort总结
============
## 关于轴点
在原始序列中,轴点未必存在。根据轴点的定义,轴点的必要条件是轴点必然是已经就位的点。所以,在有序序列中,所有元素皆为轴点。这样,快速排序的本质,其实就是将所有元素逐个转换成轴点的过程。
## QuickSort基本思路
+ 分而治之的策略类似于Mergesort
+ 但是与Mergesort不同的是Quicksort是在划分的时候做文章主要操作是划分partition操作而Mergesort划分的时候直接简单划分主要操作是合并merge操作。
+ 递归实现
## 轴点的构造
+ 简单取第一个元素
+ 随机选取
+ 三者取中法
## 划分的策略
+ 版本一:难以应对退化的情形
+ 版本二:可以处理退化,但是稳定性更差
+ 版本三:稳定性更好,但是仍然是不稳定的算法。不能应对退化情形
## 平均情况下时间复杂度的证明