希尔排序
1 package com.berry.algorithm.sort; 2 3 /** 4 * Created by berry-h on 17-1-17. 5 */ 6 public class ShellSort implements Sort{ 7 8 /** 9 *希尔排序 10 * @param array 11 */ 12 @Override 13 public void sort(int[] array) { 14 15 int increment = array.length; 16 int i, j; 17 18 do{ 19 //计算增量 20 increment = increment/3 + 1; 21 //从等于增量值的索引处开始循环,与减去增量值得到的索引对应的值比较 22 for(i = increment;i < array.length;i++){ 23 if(array[i - increment] > array[i]){ 24 int temp = array[i]; 25 //以增量作为间隔并替换 26 for(j = i - increment;j >= 0 && array[j] > temp;j = j - increment){ 27 array[j + increment] = array[j]; 28 } 29 array[j + increment] = temp; 30 } 31 } 32 33 }while(increment > 1); 34 35 } 36 }