[数据结构][Sort]Shell Sort

 1 public class Solution 
 2 {
 3     public void shellSort(int[] data)
 4     {
 5         for(int i = data.length / 2; i > 0; i = i / 2)
 6         {
 7             for(int j = 0; j < i; j ++)
 8             {
 9                 insertSort(data, j, i);
10             }
11         }
12     }
13     
14     public void insertSort(int[] data, int begin, int distance)
15     {
16         for(int i = begin + distance; i < data.length; i = i + distance)
17         {
18             int key = data[i];
19             
20             int pointer = i - distance;
21             
22             while((pointer >= 0) && (data[pointer] > key))
23             {
24                 data[pointer + distance] = data[pointer];
25                 
26                 pointer = pointer - distance;
27             }
28             
29             data[pointer + distance] = key;
30         }
31     }
32 
33 }

 

posted @ 2017-09-01 00:00  StringBuilder  阅读(124)  评论(0)    收藏  举报