public class ShelllSort {
/**
* @param args
*/
public static void main(String[] args) {
int [] data = {1,5,11,4,15,16,18};
shellSort(data);
for(int i =0;i<data.length;i++){
System.out.println("AfterSort--data--->"+data[i]);
}
}
private static void shellSort(int[] datas){
for(int h =datas.length/2 ; h >=2; h = h/2){
for(int start =0;start<h;start++)
insertSort(datas, start, h);
}
insertSort(datas, 0, 1);
}
private static void insertSort(int[] datas, int start, int inc){
for( int i = start + inc ;i<datas.length;i=i+inc){
for(int j = i;j>inc&&datas[j]<datas[j-inc];j = j-inc){// insert sort
swapData(datas, j, j-inc);
}
}
}
private static void swapData(int[] data , int i ,int j){
int temp = data[i];
data[i]= data[j];
data[j]= temp;
}
}
ShelllSort
最新推荐文章于 2024-07-28 23:42:25 发布