屌丝的常用排序-----one
2016-04-04 08:25
281 查看
排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。
![](http://s5.51cto.com/wyfs02/M02/7E/77/wKioL1cBsTWAB2j-AAEeGkSMR7w198.jpg)
1、交换排序---->冒泡排序
冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
冒泡排序算法的运作如下:(从后往前) 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3.针对所有的元素重复以上的步骤,除了最后一个。 4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
![](http://s5.51cto.com/wyfs02/M02/7E/7A/wKiom1cBsUHSc_nTAABqBYc8PtM466.png)
代码实现(C语言)
![](http://s4.51cto.com/wyfs02/M01/7E/77/wKioL1cBs1qTM2wkAAA1h9goCrQ159.png)
2、交换排序---->快速排序
快速排序(Quicksort)是对冒泡排序的一种改进。
快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
![](http://s3.51cto.com/wyfs02/M00/7E/7A/wKiom1cBszvhH-RrAACrNmeAgoY717.jpg)
代码实现(C语言)
![](http://s3.51cto.com/wyfs02/M01/7E/77/wKioL1cBtC7xqNAwAABSgoP3kqg838.png)
![](http://s5.51cto.com/wyfs02/M02/7E/77/wKioL1cBsTWAB2j-AAEeGkSMR7w198.jpg)
1、交换排序---->冒泡排序
冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
冒泡排序算法的运作如下:(从后往前) 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3.针对所有的元素重复以上的步骤,除了最后一个。 4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
![](http://s5.51cto.com/wyfs02/M02/7E/7A/wKiom1cBsUHSc_nTAABqBYc8PtM466.png)
代码实现(C语言)
![](http://s4.51cto.com/wyfs02/M01/7E/77/wKioL1cBs1qTM2wkAAA1h9goCrQ159.png)
2、交换排序---->快速排序
快速排序(Quicksort)是对冒泡排序的一种改进。
快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
![](http://s3.51cto.com/wyfs02/M00/7E/7A/wKiom1cBszvhH-RrAACrNmeAgoY717.jpg)
代码实现(C语言)
![](http://s3.51cto.com/wyfs02/M01/7E/77/wKioL1cBtC7xqNAwAABSgoP3kqg838.png)
相关文章推荐
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法
- 基于C++实现的各种内部排序算法汇总
- C++线性时间的排序算法分析
- C++实现汉诺塔算法经典实例
- PHP实现克鲁斯卡尔算法实例解析