Hill sorting algorithm to sort a

Hill sorting (Shell Sort)

Ranking of insertion. Also known as narrow increment sort, direct insertion Ranking algorithm more efficient improved version.

Hill sorting non-stationary sorting algorithm.

 

 1 class ShallSort {
 2     public void sort() {
 3         int[] arr = {1,2,5,1,4,2,12};
 4 
 5         //增量
 6         int flag = arr.length;
 7         while (flag>1){
 8             //获取增量间隔,递减
 9             flag=flag/3+1;
10             //交叉排序:所有组交叉一起排序
11             for(int i=flag;i<arr.length;i++){
12                 //每组排序细节:
13                 //从后向前排序
14                 int temp = arr[i];
15                 int j =i;
16                 //快速排序:
17                 //第一次两个之间排序,使之有序
18                 //第二次三个之间排序,使之有序
19                 //第三次四个之间排序,使之有序
20                 //类推
21                 while ( j-flag>=0 && arr[j-flag]>temp){
22                     //大数放后面
23                     arr[j]=arr[j-flag];
24                     j-=flag;
25                 }
26                 arr[j]=temp;
27             }
28         }
29     }
30 }

 

 

 

Guess you like

Origin www.cnblogs.com/loveer/p/11266566.html