转:快速排序的算法思想
2012-02-09 21:43
357 查看
快速排序的算法思想:
详细参考:http://www.2cto.com/kf/201104/87601.html
待排序数组:黄色底色表示pivot。
2.从后向前移动high,找到第一个小于tmp的数,则将该数移动到low的位置。
3.从前向后移动low,找到第一个大于tmp(4)的数,将其移动到high的位置。
4.然后再向前移动high,试图找到第一个小于tmp(4)的数,但没有找到,此时low与high重叠,将tmp的值放入low的位置,并将low作为pivot返回。
根据新的pivot进行递归调用,将原待排序数组 分解为两块,index区间分别为0~2,4~7,即以下两个子数组
(并未新建数组,只是只关注这个区间的数据,对其进行排序,也就是将问题分解为两个小的子问题,但问题很类似。)
详细参考:http://www.2cto.com/kf/201104/87601.html
待排序数组:黄色底色表示pivot。
2.从后向前移动high,找到第一个小于tmp的数,则将该数移动到low的位置。
3.从前向后移动low,找到第一个大于tmp(4)的数,将其移动到high的位置。
4.然后再向前移动high,试图找到第一个小于tmp(4)的数,但没有找到,此时low与high重叠,将tmp的值放入low的位置,并将low作为pivot返回。
根据新的pivot进行递归调用,将原待排序数组 分解为两块,index区间分别为0~2,4~7,即以下两个子数组
(并未新建数组,只是只关注这个区间的数据,对其进行排序,也就是将问题分解为两个小的子问题,但问题很类似。)
相关文章推荐
- 【算法】快速排序——基于分治思想的实现
- 快速排序的算法思想及Python版快速排序的实现示例
- 快速排序的算法思想和具体事例
- 快速排序的算法思想及Python版快速排序的实现示例
- 快速排序_算法基本思想及实现
- POJ 2388:Who's in the Middle:快速排序思想求解中位数
- 算法竞赛——快速排序
- 浅谈算法和数据结构(4):快速排序
- 快速排序、归并排序、堆排序三种算法性能比较
- 算法导论快速排序python实现
- 基于比较的算法之四:快速排序
- 快速排序之“挖坑填数+分治”思想实现
- 快速排序 图解算法过程
- C#算法-------(四)快速排序
- 白话经典算法系列之六 快速排序 快速搞定 【转】
- 算法与数据结构——排序(九)快速排序
- Java实现排序算法之快速排序
- 算法3:最常用的排序——快速排序
- 基础算法——快速排序