欢迎来到天天文库
浏览记录
ID:41037699
大小:33.50 KB
页数:3页
时间:2019-08-14
《C语言编程的排序方法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、C语言编程的排序方法冒泡法的程序:#includevoid sort(int array[],int size){int i,j,temp;/*下面是利用相邻的比较,把大的数放到上面;*/for(i=0;iarray[j]) { temp=array[i]; array[i]=array[j]; array[j]=
2、temp; }}void main(){int i;int a[10]={1,33,78,34,787,213,132,35,32,21};sort(a,10);for(i=0;i<10;i++) printf("%6d",a[i]);} 这是选择法的程序:#includevoid sort(int array[],int size){int i,j,k,temp;for(i=0;i3、,然后与a[i]交换;*/ for(j=i+1;jarray[j]) k=j; temp=array[k]; array[k]=array[i]; array[i]=temp;}}void main(){int a[]={12,43,54,23,32,65,87,2,34,54};int i;sort(a,10);for(i=0;i<10;i++) printf("%d"4、,a[i]);}这是一个快速排序的程序:#includevoid quick_sort(int array[],int first,int last)/*first,last分别为数组下标的范围;*/{int temp,low,high,list_separator;low=first;high=last;/*下面是比较数组中的大小,把数组中的数与中间数比较,大的放在后半部分,比中间数小的放在前半部分,*/ list_separator=array[(first+last)/2];//中间数;do{ 5、 while(array[low]list_separator)// 中间数与后半部分比较; high--; if(low<=high)//前半部分与后半部分交换; { temp=array[low]; array[low++]=array[high]; 6、 array[high--]=temp; }}while(low<=high);if(first7、+) printf("%d",a[i]);printf("");}这是一个希尔排序的程序:#includevoid shell_sort(int array[],int size){int temp,gap,i,flag;gap=size/2;do{ Do{ flag=0;/*利用标记,使前半部分与后半部分的数都对应比较过,前半部分大于后半部分的交换,直到都比较过,并且前半部分的数小于与前部分一一对应的后部分的数时,退出while循环*/ 8、 for(i=0;iarray[i+gap]) { temp=array[i];
3、,然后与a[i]交换;*/ for(j=i+1;jarray[j]) k=j; temp=array[k]; array[k]=array[i]; array[i]=temp;}}void main(){int a[]={12,43,54,23,32,65,87,2,34,54};int i;sort(a,10);for(i=0;i<10;i++) printf("%d"
4、,a[i]);}这是一个快速排序的程序:#includevoid quick_sort(int array[],int first,int last)/*first,last分别为数组下标的范围;*/{int temp,low,high,list_separator;low=first;high=last;/*下面是比较数组中的大小,把数组中的数与中间数比较,大的放在后半部分,比中间数小的放在前半部分,*/ list_separator=array[(first+last)/2];//中间数;do{
5、 while(array[low]list_separator)// 中间数与后半部分比较; high--; if(low<=high)//前半部分与后半部分交换; { temp=array[low]; array[low++]=array[high];
6、 array[high--]=temp; }}while(low<=high);if(first7、+) printf("%d",a[i]);printf("");}这是一个希尔排序的程序:#includevoid shell_sort(int array[],int size){int temp,gap,i,flag;gap=size/2;do{ Do{ flag=0;/*利用标记,使前半部分与后半部分的数都对应比较过,前半部分大于后半部分的交换,直到都比较过,并且前半部分的数小于与前部分一一对应的后部分的数时,退出while循环*/ 8、 for(i=0;iarray[i+gap]) { temp=array[i];
7、+) printf("%d",a[i]);printf("");}这是一个希尔排序的程序:#includevoid shell_sort(int array[],int size){int temp,gap,i,flag;gap=size/2;do{ Do{ flag=0;/*利用标记,使前半部分与后半部分的数都对应比较过,前半部分大于后半部分的交换,直到都比较过,并且前半部分的数小于与前部分一一对应的后部分的数时,退出while循环*/
8、 for(i=0;iarray[i+gap]) { temp=array[i];
此文档下载收益归作者所有