- 插入排序的一种,是缩小增量排序
- 直接插入排序,在数据比较有序的时候,插入的效率较高。当数据量大且数据不怎么有序的时候,直接插入排序的效率就比较低。
- 希尔排序就是在直接排序的基础上进行优化。
public static void shellSort(int[] arr) {
int len = arr.length;
int d;
int i, j, k, min;
for (d = len / 2; d >= 1; d /= 2) {//确定
for (i = 0; i < d; i++) {//确定有几组数据
for (j = i; j<len; j+=d) {//对分组之后的数据进行插入排序。(注意不是冒泡排序)
min=arr[j];
for ( k = j-d; k >=0 ; k-=d) {
if(arr[k]>min){
arr[k+d]=arr[k];
}else{
break;
}
}
arr[k+d]=min;
}
}
}
}
来源:CSDN
作者:羽绒333333
链接:https://blog.csdn.net/yurong33333/article/details/103817411