希尔排序: 观察一下”插入排序“:其实不难发现她有个缺点: 如果当数据是”5, 4, 3, 2, 1“的时候,此时我们将“无序块”中的记录插入到“有序块”时,估计俺们要崩盘, 每次插入都要移动位置,此时插入排序的效率可想而知。 shell根据这个弱点进行了算法改进,融入了一种叫做“缩小增量排序法”的 ...
分类:
编程语言 时间:
2017-04-13 09:10:22
阅读次数:
264
Java常用的八种排序算法: 插入排序 - 直接插入排序 每次将待排序的记录按照关键字的大小,插入到前面已经排好序的记录的适当位置。直到全部记录插入完成。 代码实现 插入排序 - 希尔排序 又称最小增量排序,在时间效率上比直接插入排序有较大的改进。 先取定一个小于n的整数d1作为第一个增量,把全部记 ...
分类:
编程语言 时间:
2017-04-12 14:56:19
阅读次数:
291
public class ShellSort { public static void print(int[] arr) { for (int i : arr) { System.out.print(i + " "); } System.out.println(); } public static ...
分类:
编程语言 时间:
2017-04-07 23:28:46
阅读次数:
220
排序算法之快速排序 舞蹈演示排序: 冒泡排序: http://t.cn/hrf58M 希尔排序:http://t.cn/hrosvb 选择排序:http://t.cn/hros6e 插入排序:http://t.cn/hros0W 快速排序:http://t.cn/ScTA1d 归并排序:http:/ ...
分类:
编程语言 时间:
2017-04-06 20:49:37
阅读次数:
202
各种常用排序算法 类别 排序方法 时间复杂度 空间复杂度 稳定性 复杂性 特点 最好 平均 最坏 辅助存储 简单 插入 排序 直接插入 Insert O(N) O(N2) O(N2) O(1) 稳定 简单 希尔排序 Shell O(N) O(N1.3) O(N2) O(1) 不稳定 复杂 选择 排序 ...
分类:
编程语言 时间:
2017-04-04 23:20:06
阅读次数:
309
先上个总图↓: ①、直接插入排序 插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从 ...
分类:
编程语言 时间:
2017-04-04 19:23:26
阅读次数:
193
由于缺少支持库,本代码不可实际运行! 仅供思路研究。 在调用draw(0,n)时,理论上以上代码可画出n阶希尔伯特曲线。 ...
分类:
编程语言 时间:
2017-04-04 18:31:29
阅读次数:
140
希尔排序是冲破二次时间屏障的第一批算法之一。 它是通过比较相距一定间隔的元素来工作,各趟比较所用的距离随着算法的进行而减小,直到最后一趟(比较相邻元素)为止。因此希尔排序也叫缩减增量排序。 希尔排序使用一个序列h1,h2,h3...hk来排序。 具体的意思是 第一趟排序比较的是相隔为hk的元素,也就 ...
分类:
编程语言 时间:
2017-04-03 11:35:36
阅读次数:
222