2016年2月26日
摘要: 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。先取一个小于n的整数d1作为第一个增量,把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进 阅读全文
posted @ 2016-02-26 16:21 xiao_ma 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 快速排序是对冒泡排序的一种改进。思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小, 然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序。 选择一个基准数,这个数的左边都比她小,右边的都比它大,然后再递 阅读全文
posted @ 2016-02-26 15:07 xiao_ma 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列; 首先来练习一下将两个有序的数组,合并成一个有序的数组 void mergeArray(int a[], int n, int b 阅读全文
posted @ 2016-02-26 14:33 xiao_ma 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 插入排序类似于扑克牌摸牌的过程(我的习惯),小的放在前面,如果抓到更小的就再往前面放 但是第一张是不用排的。。。。 数组: 3, 6, 2, 1, 9 ->2,3,6,1,9 ->1,2,3,6,9 #include <iostream> using namespace std; int main( 阅读全文
posted @ 2016-02-26 13:19 xiao_ma 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 选择排序:选择一个最大或者最小的元素放到起始位置,直到排完为止。(不稳定) 如有一组数据:3,6,2,1,9 ->1,6,2,3,9 ->1,2,6,3,9 ->1,2,3,6,9 1 #include <iostream> 2 3 using namespace std; 4 5 int main 阅读全文
posted @ 2016-02-26 12:53 xiao_ma 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 所谓冒泡算法就是把排序想像成水里的水泡,小的在上面,大的在下面 相邻的两个元素比较,如果前面的比后面的大,就交换。 如有一组数据:3,6,2,1,9 ->3,2,1,6,9 ->2,1,3,6,9 ->1,2,3,6,9 int main() { int a[] = {3,6,2,1,9}; for 阅读全文
posted @ 2016-02-26 10:45 xiao_ma 阅读(381) 评论(0) 推荐(0) 编辑