希爾排序
思路
1.選取希爾分割點
2.對每一段進行插入排序
import java.util.*;
public class ShellSort
{
public static void main(String[] args){
int[] num={2,2,4,9,11,14,8,9,1,3};
doSort(num);
System.out.println(Arrays.toString(num));
}
public static void doSort(int[] num){
int len = num.length;
int h=1;
while(h<len/3){
h=3*h+1;
}
while(h>0){
for(int i=h;i<len;i+=h){
int temp = num[i];
int j = i-h;
while(j>=0&&num[j]>temp){
num[j+h] = num[j];
j-=h;
}
num[j+h] = temp;
}
h=(h-1)/3;
}
}
}