public class Test_希尔排序 {
public static void main(String[] args) {
int [] arr = {49, 38, 65, 97, 26, 13, 27, 49, 55};
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 / 3 ; gap > 0 ; gap /=3){
//第二个循环根据间隔,将整个数组分成若干子数组
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;
}
}
}
}
}
}
希尔排序java代码实现@麦香Bob
最新推荐文章于 2022-11-03 23:03:58 发布