package com.heima.paixu;
public class Test_希尔排序 {
public static void main(String[] args) {
int [] arr = {49, 38, 65, 97, 26, 13, 27, 49, 55, 4};
shellSort(arr);
for(int i : arr){
System.out.println(i);
}
}
public static void shellSort(int [] arr){
int i,j,k,gap = arr.length;
//第一个循环决定进行比较的间隔
for(gap = arr.length / 2 ; gap > 0 ; gap /=2){
//第二个循环根据间隔,将整个数组分成若干子数组
for(i = 0 ; i < gap ; i++){
//下面两个循环就是子数组内部的插入排序算法
for(j = i + gap ; j < arr.length ; j =j + gap){
for(k = j-gap ; k >= 0 && arr[k+gap] < arr[k]; k= k-gap){
int temp = arr[k];
arr[k] = arr[k+gap];
arr[k+gap] = temp;
}
}
}
}
}
}