package Myjava;
public class ShellSort {
public void sort(int[] data){
int h=1;
while (h<data.length/3){
h=h*3+1;
}
while(h>0){
for(int i=h;i<data.length;i++){//49,38,65,97,76,13 ,27
int temp=data[i];//13(5)
if(data[i]-data[i-h]<0){//13(5) 38(1)
int j=i-h;//1
for(;j>=0&&data[j]-temp>0;j=j-h){
data[j+h]=data[j];
}
data[j+h]=temp;
}
}h=(h-1)/3;
}
}
public static void main(String[] args) {
int[] num={49,38,65,97,76,13 ,27};
ShellSort shellSort=new ShellSort();
shellSort.sort(num);
System.out.println(java.util.Arrays.toString(num));
}
}
希尔排序
于 2018-10-11 21:00:31 首次发布