思路
是插入排序的优化算法,插入排序是每相邻两个进行比较,希尔排序加入了“步长”概念,一步步缩小步长,实现排序。
代码
for(int gap=math.floor(size/2);gap>=1;gap=math.floor(gap/2)){
for(int i=gap;i<size;i++){
int j=i,current=arr[i];
while(j-gap>0&&arr[j]<arr[j-gap]){
arr[j-gap]=arr[j];
j=j-gap;
}
arr[j]=current;
}
}