最快希尔排序,10万随机数40毫秒排完,可自行验证
void sortArray(int [] sort){
int tmp = 0;
for(int gap = sort.length/2;gap>0;gap/=2){
for(int start=0; start<gap ; start++){
//直接插入排序算法
for(int i=start ; i<sort.length ; i+=gap){
for(int j=i ; j>start; j-=gap){
if(sort[j]<sort[j-gap]){
tmp = sort[j-gap];
sort[j-gap] = sort[j];
sort[j] = tmp;
}else{
//此处退出是我自认最快的原因
break;
}
}
}
}
}
}