假如有一个9元数组: 假如 gap = 3 那么分为3组 每组3个元素 那么,这三组的元素分别是: 在每个组组内,分别进行直接插入排序 第一组: 从第二个元素开始,也就是从gap下标开始,依次与前面的元素比对,然后插入,可见,要进行两次插入 第二组和第三组也是一样的,只是开始的位置分别是,gap+1 ...
分类:
编程语言 时间:
2018-11-21 17:45:39
阅读次数:
215
1、数据结构 1.1、线性表 1.2、栈 1.3、队列 1.4、树 1.5、图 2、排序 2.1、插入排序(Insertion Sort) 算法思想:每趟将一个待排序的关键字,按照其值的大小插入到已经排好的部分序列中。 时间复杂度:O(n*n) 空间复杂度:O(1) 2.2、希尔排序(Shell S ...
分类:
编程语言 时间:
2018-11-15 00:16:35
阅读次数:
166
在网上下载了一个用Java实现的数据结构的视频, 看了前三个视频, 感觉收获很大, 今天花了接近三小时在Java的数据结构上. 课程的目录如下: 第01讲:数组第02讲:简单排序第03讲:栈和队列第04讲:链表第05讲:双端链表和双向链表第06讲:递归的应用第07讲:递归的高级应用第08讲:希尔排序 ...
分类:
编程语言 时间:
2018-11-15 00:11:39
阅读次数:
120
希尔排序 希尔排序是希尔(Donald Shell)提出的一种排序方法,也属于插入排序,但是简单插入排序的高效版本,也称为缩小增量排序。基本思想是将待排序元素进行增量分组,然后在分组组内进行插入排序,随着增量的减少,每个分组组内的元素越来越多,直至增量减至1时,所有元素都分到同一个组内,执行插入排序 ...
分类:
编程语言 时间:
2018-11-12 14:54:40
阅读次数:
169
欧拉道路与欧拉回路 欧拉道路:通过图G中每条边一次且仅一次的道路称作该图的欧拉道路。 欧拉回路:通过图G中每条边一次且仅一次的回路称作该图的欧拉回路。 欧拉图:存在欧拉回路的图称为欧拉图。 欧拉在1736年给出了欧拉道路/回路存在的必要条件,在1873年希尔霍尔策首次给出了刻画欧拉图的充要条件。 定 ...
分类:
其他好文 时间:
2018-11-07 20:44:43
阅读次数:
219
目录结构 4.1 线性结构 4.1.1 线性表 1 线性表的定义 2 线性表的存储结构 3 线性表的应用 4.1.2 栈和队列 1 栈 2 队列 4.1.3 串 1 串的定义及基本运算 4.2 数组 1 数组 2 矩阵 4.3 树与二叉树 4.3.1 树的基本概念 4.3.2二叉树 1 二叉树的性质 ...
分类:
编程语言 时间:
2018-11-04 12:38:10
阅读次数:
126
希尔排序,又称“缩小增量排序”,通过将原始列表分成若干个子列表来改进插入排序,每个子列表使用插入排序。 如何选择子列表的形式是希尔排序的关键。希尔排序使用增量i(有时又成为间隙gap)来创建子列表,而不是将原始列表连续的切分。这种方式可以将相隔较远,较为分散的元素通过增量划分到一组,改进了一次插入排 ...
分类:
编程语言 时间:
2018-11-03 19:23:23
阅读次数:
252
冒泡排序,不多说,两次for循环比较相邻两个元素的大小,然后进行交换。 选择排序,我们第一次for循环遍历所有元素,并把当前元素假设为最小的元素,然后再一个for循环去寻找真正最小的元素进行交换,这样每次我们都能找到未排序元素中的最小的元素。 插入排序,我们第一个for循环遍历所有元素,保存当前元素 ...
分类:
编程语言 时间:
2018-11-03 16:26:56
阅读次数:
100
2.1.31双倍测试。编写一个能够对排序算法进行双倍测试的用例。数组规模N的起始值为1000,排序后打印N、估计排序用时、实际排序用时以及在N增倍之后两次用时的比例。用这段程序验证在随机输入模型下插入排序和选择排序的运行时间都是平方级别的。对希尔排序的性能作出猜想并验证你的猜想。public cla ...
分类:
其他好文 时间:
2018-10-27 10:28:31
阅读次数:
184
2.1.9按照算法2.3所示轨迹的格式给出希尔排序是如何将数组 E A S Y S H E L L S O R T Q U E S T I O N排序的。答:灰底色表示相关元素未互换,黄底色表示相关元素互换。1-sort省略,与插入排序相同。public class Shell{ public st ...
分类:
编程语言 时间:
2018-10-27 10:27:50
阅读次数:
147