希尔排序
排序简介
希尔排序(Shell Sort)是插入排序的一种算法,是对直接插入排序的一个优化,也称缩小增量排序。
希尔排序是非稳定排序算法。
算法思想
一趟一增量,用增量分组,组内执行插入排序
代码实现
package Sort;
//希尔排序
import java.util.Arrays;
public class HillSort {
public static void main(String[] args) {
int []arr={10,9,8,7,6,5,4,3,2,1};
hill(arr);
System.out.println(Arrays.toString(arr));
}
static void hill(int []arr) {
for (int i = arr.length / 2; i > 0; i = i / 2) {
for (int j = i; j < arr.length; j++) { //插入排序
int target = arr[j];//要插入的数
int x = j - i;
while (x > -1 && target < arr[x]) {//与前面的已经排好序的每个数比较
arr[x+i]=arr[x];
x-=i;
}
arr[x+i]=target;
}
}
}
}