算法排序之希尔排序
算法思想 希尔排序其实就是在插入排序的基础上,增加了一个增量,每次为元素划分不同的组 。 该图片转载于此 /** * 希尔排序的实现 希尔排序其实就是在插入排序的基础上,增加了一个增量,每次为元素划分不同的组 * 克服了插入排序相邻两个元素交换的缺点,两个距离较远的元素也可以进行交换。 * @author qiu *思想:定义增量序列DM>DM-1>...>D1=1 *对每个Dk进行“Dk-间隔”排序(K=M,M-1,....1) *最坏的情况T=O(N^2) *缺点:不稳定。 */ public class XiErSort { /** * 原始希尔排序 * @param args */ public static void main ( String [ ] args ) { int [ ] a = { 1 , 8 , 2 , 11 , 20 , 0 } ; for ( int i = 0 ; i < a . length ; i ++ ) { System . out . print ( a [ i ] + " " ) ; } System . out . println ( ) ; shell_sort ( a , a . length ) ; for ( int i = 0 ; i < a . length ; i ++ ) { System . out . print