转载自白话经典算法系列,动画展示希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(...
分类:
编程语言 时间:
2015-05-03 17:20:02
阅读次数:
163
希尔排序可谓是插入排序的升级版,它通过比较相距一定间隔的元素来工作;各趟比较所用的距离随着算法的进行而减小,直到只比较相邻元素的最后一趟排序为止。由于这个原因,希尔排序也被称为缩小增量排序
希尔排序使用一个序列h1,h2,h3,....,hk,叫做增量序列。只要h1=1,任何增量序列都是可行的。在使用增量hk的一趟排序之后,对于每一个i我们有A[i]
例如:
0 1
2 3
4 5 6...
分类:
编程语言 时间:
2015-04-27 16:59:38
阅读次数:
152
希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行...
分类:
编程语言 时间:
2015-04-15 22:55:08
阅读次数:
173
希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元...
分类:
编程语言 时间:
2015-03-12 16:42:56
阅读次数:
149
要点希尔(Shell)排序又称为缩小增量排序,它是一种插入排序。它是直接插入排序算法的一种威力加强版。该方法因DL.Shell于1959年提出而得名。希尔排序的基本思想是:把记录按下标的一定增量 gap 分组,对每组记录采用直接插入排序方法进行排序。随着增量逐渐减小,所分成的组包含的记录越来越多,到...
分类:
编程语言 时间:
2015-03-05 19:16:11
阅读次数:
242
希尔排序是不稳定的,但是它比直接插入排序要快得多。
希尔排序又称为缩小增量排序,这是对直接插入排序的一种改进方法,其过程是:首先以d1 (0进行直接插入排序。然后,以d2(0
一般的初次取序列的一半为增量,以后每次减半,直到增量为1。
借用百度百科里的一张图,更直观一些。
// 希尔排序 x待排序数组, n数组长度
private static void shellSor...
分类:
编程语言 时间:
2015-01-29 17:45:49
阅读次数:
199
希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。希尔排序实质上是一种分组插入方法。它的基本思想是:对于n个待排序的数列,取一个小于n的整数gap(gap被称为步长)将待排序元素分成若干个组子序列,所有...
分类:
编程语言 时间:
2015-01-26 14:56:48
阅读次数:
254
常见经典排序算法1.希尔排序2.二分插入法3.直接插入法4.带哨兵的直接排序法5.冒泡排序6.选择排序7.快速排序8.堆排序排序算法对比一.希尔(Shell)排序法(又称宿小增量排序,是1959年由D.L.Shell提出来的)/* Shell 排序法 */#include void sort(int...
分类:
编程语言 时间:
2015-01-24 12:53:51
阅读次数:
219
1.原理介绍希尔排序又称为缩小增量排序,由D.L.Shell在1959年提出而得名。该算法先取一个小于数据表中元素个数 n 的整数gap, 并以此作为第一个间隔,将数据分为gap个子序列,所有距离为gap的对象存放在同一个子序列中,于是数据表中的元素就被分成了gap个组,分组确定后,在每一个小组中进...
分类:
编程语言 时间:
2015-01-13 13:49:49
阅读次数:
187
希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 希尔排序实质上是一种分组插入方法。它的基本思想是:对于n个待排序的数列,取一个小于n的整数gap(gap被称为步长)将待排序元素分成若干个组子序...
分类:
编程语言 时间:
2015-01-13 11:58:03
阅读次数:
202