排序算法
Syins
空谈双井美,百合淡阔城
展开
-
Syins写的快速排序
快速排序,又叫快排 采用了分治思想 具体思想为:先在一串数随机(此处代码未进行随机找数,所以不算完整的快排,但足以体现快排如何实现)找一个数,通过i与j(分别从前到后,与从后往前)判断出这个数所在的的位置,将这个数放到这个位置(此时确保在这个数之前的所有数都比该数小,之后的所有的数都比该数大(这里假设是升序排)) 然后再对前后的两串数进行如上算法 直到剩下的数少到无需处理(即一个或零个) 这里使用...原创 2019-11-06 14:32:32 · 156 阅读 · 0 评论 -
Syins写的归并排序
归并排序使用了分治思想 对一个数组排序,先将数组分成左边和右边两个子块,然后继续分子块到一个子块只包含一个数再返回 代码: void st(int a[],int lo,int hi) { if(lo>=hi) return; int mi=lo+(hi-lo)/2;//防止下标越界 st(a,lo,mi); st(a,mi+1,hi); mg(a,l...原创 2019-11-04 21:01:44 · 118 阅读 · 0 评论 -
Syins写的计数排序与桶排序
计数排序 此处采取的是随机数赋值 计数即计一个数出现几次 即: for(i=0;i<n;i++) { c[a[i]]++; } 当然c数组是事先初始化为0的 然后对c数组进行加法运算,得到不同大小的数下标的最大位置 即: for(i=1;i<=w;i++) { c[i]+=c[i-1]; } w是a数组的最大值 再通过...原创 2019-11-05 12:48:36 · 114 阅读 · 4 评论