目录
1、什么是快速排序?
快速排序是通过一组排序将要排序的数据分割成独立的两个部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归实现,以此使所有数据变成有序序列。
快速排序到底是如何排序的呢?
下面通过一个动图来看一看快速排序到底是怎么样移动的
2、算法设计
(1)分解:先从数列中取出一个元素作为基准元素。将问题分解为两个子序列,小于或等于基准元素的子序列在左侧,大于基准元素的子序列在右侧。
(2)治理:对两个子序列进行快速排序
(3)合并:将排好序的有序子序列进行合并,得到最终的有序序列
快速排序与合并排序的区别:
合并排序分解容易,合并难,属于 “先易后难” 。
快速排序合并容易,分解难,属于 “先难后易” 。
假设当前待排序的序列为 R[low:high],其中 low<=high,如果序列的规模足够小