希尔排序介绍 希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 希尔排序实质上是一种分组插入方法。它的基本思想是:对于n个待排序的数列,取一个小于n的整数gap(gap被称为步长)将待排序元素分成若干 ...
分类:
编程语言 时间:
2017-12-26 21:01:02
阅读次数:
227
二、Shell排序 Shell排序也叫“缩减增量排序”(disminishing increment sort),基于插入排序进行。 Shell建议的序列是一种常用但不理想的增量序列:1,...,N/8,N/4,N/2 (ht=N/2,hk=hk+1/2) 思路: 通过比较相隔一定间隔(hk)的元素 ...
分类:
编程语言 时间:
2017-12-11 13:55:41
阅读次数:
261
下文外链接中,来自希尔排序希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。其实所谓的增量就是从第一个数字开始之后加上增量互相比较。比如增量为5时,第一个和第六个比较,第二个和第七个比较,然后得出的排序再次比较。增量为3时,第一个和第四个和第七个比较,... ...
分类:
编程语言 时间:
2017-12-10 15:56:47
阅读次数:
184
独白: 希尔排序是经过优化的插入排序算法,之前所学的排序在空间上都是使用列表本身。而归并排序是利用增加新的空间,来换取时间复杂度的减少。这俩者理念完全不一样,注定造成的所消耗的时间不同以及空间上的不同。 归并排序涉及到递归的使用,需要理解其中精髓才能更好了解归并排序,以及其他应用到递归的算法。理解其 ...
分类:
编程语言 时间:
2017-11-25 21:43:20
阅读次数:
163
java希尔排序 1、基本思想: 希尔排序也成为“缩小增量排序”,其基本原理是,现将待排序的数组元素分成多个子序列,使得每个子序列的元素个数相对较少,然后对各个子序列分别进行直接插入排序,待整个待排序列“基本有序”后,最后在对所有元素进行一次直接插入排序。因此,我们要采用跳跃分割的策略:将相距某个“ ...
分类:
编程语言 时间:
2017-11-24 18:03:17
阅读次数:
217
上一篇介绍了希尔排序,它又被称为缩小增量排序,这就说明了增量在希尔排序中的重要性。 本篇使用四组不同的增量,通过统计排序的比较次数、移动次数、执行时间,来讨论不同的增量对希尔排序效率的影响。 选取的增量:h1=N/2, N/4, N/8,……,1(每次增量减半) h2=N/3, N/9, N/27, ...
分类:
编程语言 时间:
2017-11-08 20:50:22
阅读次数:
272
希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。本文会以图解的方式详细介绍希尔排序的基本思想及其代码实现。 基本思想 希尔排序是把记录按 ...
分类:
编程语言 时间:
2017-11-08 00:49:19
阅读次数:
195
希尔排序(缩小增量排序) <script type="text/javascript"> var obj={ data:[0,3,11,5,7,4,8,9,5], length:8 }; //希尔排序(缩小增量排序) //思想:希尔排序是在直接插入排序的基础上得来的,直接插入在待排序的 //序列基本 ...
分类:
系统相关 时间:
2017-10-17 09:56:53
阅读次数:
171
图解排序算法(二)之希尔排序 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。本文会以图解的方式详细介绍希尔排序的基本思想及其代码实现。 ...
分类:
编程语言 时间:
2017-10-12 19:21:54
阅读次数:
261
希尔排序的基本思想 ①希尔排序又称缩小增量排序 ,它本质上是一个插入排序算法。为什么呢? 因为,对于插入排序而言,插入排序是将当前待排序的元素与前面所有的元素比较,而希尔排序是将当前元素 与前面增量位置上的元素进行比较,然后,再将该元素插入到合适位置。当一趟希尔排序完成后,处于增量位置上的元素是有序 ...
分类:
编程语言 时间:
2017-09-30 10:06:28
阅读次数:
137