7种排序
a2604539133
这个作者很懒,什么都没留下…
展开
-
01_选择排序和冒泡排序
由于选择排序和冒泡排序是比较基础的排序算法,所以这里只是给出代码,具体的排序算法就不讲解了。void wei::Chen::swap( int &a , int &b ) { a ^= b; b ^= a; a ^= b; } void wei::Chen::showArr(int arr[], int len) { for (int i = 0; i < len;转载 2017-05-17 16:51:54 · 165 阅读 · 0 评论 -
04_快速排序
快速排序算法思路: 先拿一个数(这里取a[0])将这个数组分成两堆,一堆大于这个数,另一堆相反,然后这个数就放到了他该放的位置上面(相当于这个数就拍好序)。以此类推,左边的继续重复上面的操作,右边也是。这是不是就是递归的思想了。 /*进来一个数组,参考第一个a[low],将数组分成两堆,返回最后这个a[low]该放到的下标*/ int wei::Chen::partition(int arr[转载 2017-05-17 20:50:50 · 168 阅读 · 0 评论 -
02_插入算法
插入排序(从小到大排序)算法解析: 其实就是将数组分成两批,第一批是有序的数组,第二批是待排序的数组;将后面待排序的每个数组元素与第一批有序的数组比较,当满足条件时候插入即可。 例如:先假设第一批有序数组是一个元素,然后再后面的9个元素中取第一个与之比较,如果小于第一个有序数组的第一个元素,就将有序数组的最后一个元素退后一位;以此类推,依次将无序数组中第一元素与有序数组中的最后一个到有序原创 2017-05-17 17:24:54 · 250 阅读 · 0 评论 -
03_希尔排序(ShellSort)
希尔排序算法思路: 希尔排序是插入排序的增强版,如果没看过插入排序,请先查看插入排序算法的思路。 希尔排序按照增量d依次将数组分组排序,增量的选取可以自己决定,现在还没统一的规定多少是最合适的,但是增量的最后必须是d=1。 例如:有个a[10]的数组,增量可以选取d=len , d=d/3+1 (4,2,1);每个增量d都可以将数组分成d组。然后,每个组再进行排序,这样经过一轮增量转载 2017-05-17 19:45:55 · 261 阅读 · 0 评论 -
06_堆排序
a转载 2017-05-18 09:39:17 · 199 阅读 · 0 评论 -
05_归并排序
归并排序算法思路: ===>将一个序列分成有序的两个序列,然后根据大小将其归并,这样就能得到有序序列。 问题来了,怎么才能分出两个有序的子序列呢? ===> 如果这两个子序列都只有一个元素,那就是有序子序列了,直接归并不就成为一个有序的序列了。 是不是想到什么了? ===>对,就是将一个序列分成两个子序列归并,这两个子序列又分成四个子序列归并。规律,先分后归,这不就是递转载 2017-05-18 09:33:20 · 247 阅读 · 0 评论