//谢尔排序又称缩小增量排序法(对直接插入法的改进) #include<iostream> using namespace std; void ShellSort(int k[],int n) { int i,j,flag,gap=n; int temp; while(gap>1) { gap=gap/2; do{ flag=0; for(i=0;i<=n-gap;i++) { j=i+gap; if(k[i]>k[j]) { temp=k[i]; k[i]=k[j]; k[j]=temp; flag=1; } } }while(flag!=0); } } void main() { int k[10],i; for(i=0;i<10;i++) scanf("%d",&k[i]); ShellSort(k,10); for(i=0;i<10;i++) printf("%d ",k[i]); printf("\n"); }