/*********希尔排序先从0定义再到gap*********************/
public static int[] shell2(int []num,int len){
int j=0;
for(int gap=len/2;gap>0;gap/=2){
for(int i=0;i<len-gap;i++){
j=i;
while((j>=0)&&(num[j]>num[j+gap])){
num[j]=num[j+gap]+num[j];
num[j+gap]=num[j]-num[j+gap];
num[j]=num[j]-num[j+gap];
j=j-gap;
}
System.out.print(1+",");
}
}
return num;
}
/*******************希尔排序先从gap定义再到0*********************/
public static int[] shell(int []num,int len){
for(int gap=len/2;gap>0;gap/=2){
for(int i=gap;i<len;i++){
for(int j=i-gap;(j>=0)&&(num[j]>num[j+gap]);j-=gap){
num[j]=num[j+gap]+num[j];
num[j+gap]=num[j]-num[j+gap];
num[j]=num[j]-num[j+gap];
}
System.out.print(1+",");
}
}
return num;
}