package com.kuang;
import java.util.Arrays;
/**
* @auther 付强
* @date 2020/2/15 - 9:12
*/
public class shellSort {
public static void main(String[] args) {
int []arr=new int[]{3,5,2,1,4,8,0,7,6};
shellSort(arr);
System.out.println(Arrays.toString(arr));
}
public static void shellSort(int[] arr){
//遍历所有的步长
int k=1;
for (int d=arr.length/2;d>0;d/=2) {
//遍历所有的元素
for (int i = d; i < arr.length; i++) {
//遍历本组中的所有元素
for (int j=i-d;j>=0;j-=d){
//如果当前元素大于加上步长后的那个元素
if(arr[j]>arr[j+d]){
int temp=arr[j];
arr[j]=arr[j+d];
arr[j+d]=temp;
}
}
}
System.out.println("第"+(k+1)+"次排序结果:"+Arrays.toString(arr));
k++;
}
}
}
原文:https://www.cnblogs.com/fuqiang-java/p/12310674.html