图解
以 3 1 6 4 5 7 2
为例,查看快速排序过程。
图例:
红色外框 - 基准点
蓝色背景 - i 位置
黄色背景 - j 位置
橙色背景 - i 、j 相遇点
紫色背景 - 基准点两边部分
绿色背景 - 其他元素
1. 第一次排序
对整体进行一次排序,以第一个元素作为基准,找出比基准小的放到左边,找出比基准大的放到右边,将整体数据一分为二。
2. 对左边部分进行排序
原理和之前一样。
排序完成后,左边部分只有一个元素,无需继续划分;右边部分没有元素,无需继续划分。
3. 对右边部分进行排序
原理和之前一样。
排序完成后,左边部分没有元素,无需继续划分;右边部分继续排序。
4. 右边部分继续排序
原理和之前一样。
排序完成后,左边部分没有元素,无需继续划分;右边部分继续排序。
5. 右边部分再继续排序
原理和之前一样。
排序完成后,左边部分没有元素,无需继续划分;右边部分只有一个元素,无需继续排序。
6. 整合
将几次排序的结果合并,得到最终结果。
7. 注意
每次都是先 从右向左 开始查找。
网友评论