最快希尔排序,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;
}
}
}
}
}
}
本文介绍了一种优化的希尔排序算法,实现在40毫秒内对10万个随机数进行排序。通过采用特殊的插入排序策略,显著提高了希尔排序的效率。详细代码实现可供读者验证其性能。
555

被折叠的 条评论
为什么被折叠?



