希尔排序法
publicclass shellSort { publicshellSort(){ int a[]={1,54,6,3,78,34,12,45,56,100}; double d1=a.length; int temp=0; while(true){ //间隔为d d1= Math.ceil(d1/2); int d=(int) d1; for(int x=0;x<d;x++){ //每一个间隔里面(进行d-1次简单插入排序),起点从0到d-1 for(int i=x+d;i<a.length;i+=d){ //(简单插入排序)第x次循环中进行排序,需要排序的元素从x+d开始() int j=i-d; temp=a[i]; for(;j>=0&&temp<a[j];j-=d){ //a[i]与前面的元素进行比较 a[j+d]=a[j]; } a[j+d]=temp; } } if(d==1) break; } for(int i=0;i<a.length;i++) System.out.println(a[i]); } }