希尔排序又称缩小增量排序,该方法的思想是将所有的待排元素分成若干个子序列,相隔距离为某个增量,将对每一个子序列进行直接插入排序,不断缩小增量,继续排序,最后增量很小时候进行最后一次插入排序 以n=10的一个数组49, 38, 65, 97, 26, 13, 27, 49, 55, 4为例 第一次 g ...
分类:
编程语言 时间:
2017-04-27 21:06:54
阅读次数:
174
希尔排序(缩小增量排序) 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基 ...
分类:
编程语言 时间:
2017-04-22 17:40:17
阅读次数:
213
希尔排序: 观察一下”插入排序“:其实不难发现她有个缺点: 如果当数据是”5, 4, 3, 2, 1“的时候,此时我们将“无序块”中的记录插入到“有序块”时,估计俺们要崩盘, 每次插入都要移动位置,此时插入排序的效率可想而知。 shell根据这个弱点进行了算法改进,融入了一种叫做“缩小增量排序法”的 ...
分类:
编程语言 时间:
2017-04-13 09:10:22
阅读次数:
264
Java常用的八种排序算法: 插入排序 - 直接插入排序 每次将待排序的记录按照关键字的大小,插入到前面已经排好序的记录的适当位置。直到全部记录插入完成。 代码实现 插入排序 - 希尔排序 又称最小增量排序,在时间效率上比直接插入排序有较大的改进。 先取定一个小于n的整数d1作为第一个增量,把全部记 ...
分类:
编程语言 时间:
2017-04-12 14:56:19
阅读次数:
291
希尔排序是冲破二次时间屏障的第一批算法之一。 它是通过比较相距一定间隔的元素来工作,各趟比较所用的距离随着算法的进行而减小,直到最后一趟(比较相邻元素)为止。因此希尔排序也叫缩减增量排序。 希尔排序使用一个序列h1,h2,h3...hk来排序。 具体的意思是 第一趟排序比较的是相隔为hk的元素,也就 ...
分类:
编程语言 时间:
2017-04-03 11:35:36
阅读次数:
222
1 /************************************************************************/ 2 /* 希尔排序,称为增量排序更好记忆 3 /* 增量选取为N/2,虽不是个好的增量,但是便于理解 4 /*******************... ...
分类:
编程语言 时间:
2017-02-26 17:06:18
阅读次数:
157
希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进 ...
分类:
编程语言 时间:
2017-01-06 21:32:51
阅读次数:
285
希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。 如下图所示: 代码如下: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>The eleven html page</title> 5 <styl ...
分类:
编程语言 时间:
2016-12-22 00:22:12
阅读次数:
290
堆排序,时间复杂度O(N log N),实际使用中慢于使用Sedgewick增量的增量排序。 大致思路: 1.先在数组中建堆,如果是增量排序,则需要建一个大堆 2.每循环一次,把最大的数,也就是nums[0],放入堆尾,同时把nums[0]下滤 ...
分类:
其他好文 时间:
2016-12-13 23:11:19
阅读次数:
231
希尔排序 希尔排序也是插入排序的一种。又名缩小增量排序。它是对直接插入排序的一种改进。 直接插入排序是每次都和前面一个元素进行比较。其步长为 1。 希尔排序则不然,它得步长是动态变化的,或者说是由大到小变化的。希尔排序根据步长将整个序列分成n组。然后在各个子组内部分别进行元素的排序。接着缩小步长,相 ...
分类:
编程语言 时间:
2016-12-01 11:52:03
阅读次数:
217