希尔排序法_i++



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]);

}
}