希爾排序( 最壞O(N^2) )
//默認是升序
public void sort(int[]nums){
int len = nums.length;
//取hk=len/2
for(int hk = len/2;hk>0;hk/=2){
for(int i=hk;i<len;i++){
//從i開始,以hk的間隔往前遍歷,找到nums[i]合適的位置插入
int cur = nums[i];
int j=i;
for(j=i;j>=hk;j-=hk){
if(cur<nums[j-hk])
nums[j]=nums[j-hk];
else
break;
}
nums[j]=cur;
}
}
}