希尔排序 代码

来源:互联网 发布:券商研究员 知乎 编辑:程序博客网 时间:2024/06/03 18:57
整理了一下希尔排序的代码,基本上可以使用.如有发现问题,请指出来: void xier_sort(int a[],int n){ int k; int j; int temp; k=n/2; while( k>0 ) //k=5;k=2;k=1; { int i; for(i=k;i<10 i="" j="i-k;" while="" j="">=0) //0vs5;1vs6;3vs6;4vs7;5vs8,0vs5;6vs9; { temp = a[j]; a[j]=a[j+k]; a[j+k]=temp; j-=k; //j-k;j-k<0;<0; } } k/=2; }}下面附简单排序程序以便帮助更好理解此排序算法;#include int main(){ int a[10]; int i; int k,j,t; printf("Please input Ten digit: "); for(i=0;i<10 i="" scanf="" d="" a="" i="" k="10/2;" k="5;k=2;k=1;" while="" k="">0) { for(i=k; i<10 i="" j="i-k;" j="0;j=1;j=2;j=4;" while="" j="">=0) if(a[j]>a[j+k]) //0vs5;1vs6;3vs6;4vs7;5vs8,0vs5;6vs9; { //0vs2;1vs3;2vs4;3vs5;4vs6; t=a[j]; a[j]=a[j+k]; a[j+k]=t; j-=k; //j-k;j-k<0;<0; } else break; } k/=2; }//输出: for(i=0;i<10;i++) printf("%d ",a[i]); system("pause"); return 0;}
0 0