快速排序
来源:互联网 发布:新东方网络英语 编辑:程序博客网 时间:2024/06/07 02:56
快速排序(Quicksort)是对冒泡排序的一种改进,其核心的思想:
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
例子如下:
现有下面6个数据,上面是序号,下面是值
序号0 1 2 3 4 5
数据6 2 7 4 1 8
创建变量i=0(指向第一个数据), j=5(指向最后一个数据), k=6(为第一个数据的值),
我们要把所有比k小的数移动到k的左面,所以我们可以开始寻找比k小的数,从j开始,从右往左找,不断递减变量j的值,我们找到第一个序号4的数据比K小,于是把序号4和序号0下面的数据值交换,完成第一次比较:
序号012345
数据127468
此时i=0 j=4 k=6
接着,开始第二次比较,这次要变成找比k大的了,而且要从前往后找了。递加变量i,发现序号2的数据是比k大的,于是把序号2和序号4下面的数据值交换,完成第二次比较:
序号012345
数据126478
此时i=2 j=4 k=6
然后,我们可以开始寻找比k小的数,从j开始,从右往左找,不断递减变量j的值,我们找到第一个序号3的数据比K小,于是把序号3和序号2下面的数据值交换,完成第三次比较:
序号012345
数据124678
此时i=2j=3 k=6
最后,开始第四次比较,这次要变成找比k大的了,而且要从前往后找了。这时发现i=j=k=6,完成排序。
阅读全文
1 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 压力测试工具
- jquery mobile中设定content高度的两种方法
- HashSet,和TreeSet的区别
- Storm TopologyBuilder
- 一维数组求平均数js
- 快速排序
- label标签
- iOS异常记录一
- [LeetCode]109. Convert Sorted List to Binary Search Tree
- LAMP环境的搭建
- python数据分析复盘——数据分析相关库之Matplotlib
- java使用反射机制将两个对象共有的属性进行复制value值
- hadoop实战随笔_0715
- 解读数据传输DTS技术架构及最佳实践