
排序
TC_jiang886
这个作者很懒,什么都没留下…
展开
-
归并排序
#include void merge_sort(int *A,int x,int y,int *T) { if(y-x>1)//y-x表示要排序的这一段元素的个数x为元素的首地址y为边界但达不到 { int m=x+(y-x)/2;//分成两段一段为[x,m)另一段位[m,y) int p=x,q=m,i=x; mer原创 2014-05-02 17:06:12 · 471 阅读 · 0 评论 -
计数排序
#include #include int main() { int a[100],n,b[100],c[10000],i,j,m;//n代表n个数,m代表最大数在m的的范围内 // b数组为排好序后存放结果的数组 c数组为中间数组 while(scanf("%d%d",&n,&m)!=EOF) { memset(c,0,sizeof原创 2014-10-16 11:16:54 · 441 阅读 · 0 评论 -
希尔排序
/* 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2 该方法实质上是一种分组插入方法 比较相隔较远距离(称为增量)的数,使得数移动时能跨过多个元素,则进行一次比[1] 较就可能消除多个元素交换。D.L.shell于1959年在以他名字命名的排序算法中实现了这一思想。算法先将要排原创 2014-10-17 15:43:40 · 399 阅读 · 0 评论