快速排序整理

快速排序的三个步骤:
(1)选择基准:在待排序列中,按照某种方式挑出一个元素,作为 “基准”(pivot)
(2)分割操作:以该基准在序列中的实际位置,把序列分成两个子序列。此时,在基准左边的元素都比该基准小,在基准右边的元素都比基准大
(3)递归地对两个序列进行快速排序,直到序列为空或者只有一个元素。

https://blog.csdn.net/morewindows/article/details/6684558
对算法的过程进行详细的图文解说。挖坑填坑 + 分治法。
代码实现:最简单的实现方法,没有优化。代码稍有冗余(if判断中不用对i,j的值操作)

http://developer.51cto.com/art/201403/430986.htm
对算法的执行过程进行了详细的描述,简单易懂,附有图解。基准数归位 + “二分“思想
代码实现:最简单的实现方法,没有优化。每次遍历选择第一个数作为基准数。在每次基准归位时进行了两次挖坑、填值。

http://www.cnblogs.com/foreverking/articles/2234225.html
简单描述了一个例子的第一遍的过程。
对最好、最坏情况的时间复杂度进行了分析。
代码实现:最简单的实现方法,没有优化。每次遍历选择第一个数作为基准数。多用一个空间,在每次基准归位时,进行一次交换。

对算法进行优化:
https://blog.csdn.net/hacker00011000/article/details/52176100
https://blog.csdn.net/zuiaituantuan/article/details/5978009
https://www.cnblogs.com/vipchenwei/p/7460293.html
https://blog.csdn.net/msdnwolaile/article/details/52133674

猜你喜欢

转载自blog.csdn.net/qq_24336773/article/details/80436313