C语言实现各种排序方法:
1. 快速排序:
#include #include void kuai_pai(int *a,int low,int high) { int left,right,middle,i,j,temp; left=low; right=high; middle=(left+right)/2; while(left while(left while(right>low&&a[right]>a[middle]) right--; if(left<=right) { temp=a[left]; a[left]=a[right]; a[right]=temp; left++; right--; } } if(left if(right>low) kuai_pai(a,low,right); } void main() { int *a,i,n; a=(int *)malloc(100); if(NULL==a) { printf(\"allocation failture\\n\"); exit(1); } printf(\"请输入你要排序的元素的个数\\n\"); scanf(\"%d\ printf(\"现在开始输入%d个元素\\n\ for(i=0;i!=n;++i) scanf(\"%d\ kuai_pai(a,0,n-1); printf(\"排序后为:\\n\"); for(i=0;i!=n;++i) printf(\"%d \ printf(\"\\n\"); free(a); } 2. shell排序 #include #include void shell(int *a,int n) { int gap,i,j,temp; for(gap=n/2;gap>0;gap=gap/2) for(i=gap;i { temp=a[j]; a[j]=a[j+gap]; a[j+gap]=temp; } } void main() { int *a,i,n; a=(int *)malloc(100); if(NULL==a) { printf(\"allocation failture\\n\"); exit(1); } printf(\"请输入你要排序的元素的个数\\n\"); scanf(\"%d\ printf(\"现在开始输入%d个元素\\n\ for(i=0;i!=n;++i) scanf(\"%d\ shell(a,n); printf(\"排序后为:\\n\"); for(i=0;i!=n;++i) printf(\"%d \ printf(\"\\n\"); free(a); } 3. 插入法排序
Copyright © 2019- huatuo3.cn 版权所有 湘ICP备2023017654号-3
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务