转自https://www.cnblogs.com/chengxiao/p/6104371.html 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第 ...
分类:
编程语言 时间:
2018-09-16 12:30:44
阅读次数:
151
我选的是前端方向,所以编程题的题目也比较简单,但是坑很多呀,不知道错在哪,最后没办法直接用最暴力的方法AC了。 笔试分为选择和编程,选择20个,每个三分,编程题两道每道20分。 选择题考点: 1、数据结构(包括大顶堆、希尔排序、B-树、以及hash) 2、计算机网络(只考了一两题,TCP和UDP) ...
分类:
其他好文 时间:
2018-09-15 13:12:04
阅读次数:
203
欢迎Star,本文的所有示例源码都在Github:https://github.com/AndroidHensen/Arithmetic 本篇内容包含 排序的介绍 排序的C的实现 排序的Java的实现 排序的时间复杂度的计算 1、基本思想: 两个数比较大小,较大的数下沉,较小的数冒起来 2、实现步骤 ...
分类:
编程语言 时间:
2018-09-11 13:59:30
阅读次数:
144
读数据结构与算法分析 插入排序 核心:利用的是从位置0到位置P都是已排序的 所以从位置1开始排序,如果当前位置不对,则和前面元素反复交换重新排序 实现 希尔排序 使用hk增量序列进行一趟排序后,对每个i都有 重要性质:一个hk排序的文件在之后的排序中将保持hk排序性 实现 ht = [N / 2] ...
分类:
编程语言 时间:
2018-09-08 16:00:38
阅读次数:
195
小朋友学数据结构(9):希尔排序 (一)基本思想 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。 (二)例子 有一个数组,其原始数组为: 2-1.png 取初始增量gap = len ...
分类:
编程语言 时间:
2018-09-08 00:48:01
阅读次数:
211
一些说明 我将会写一系列关于算法的博客,因为我是程序员,并不是计算机科学家,也即我是搞工程的,并不是搞学术的,所以对于我来说,最重要的就是 1.有哪些算法 2.这些算法的原理 3.这些算法的实现 4.这些算法的效率 而其他的,相对而言,并没有那么重要,比如算法的证明,所以以后的博客都会按照上述的思维 ...
分类:
编程语言 时间:
2018-09-07 14:11:42
阅读次数:
156
图片镇楼 插入排序(InsertSort) 步骤: 1.依次选择一个待排序的记录, 2.依次与已经排好序的有序序列比较,并插入 3.持续每次对越来越少的元素重复上面的步骤,直到插完所有元素为。 改进: 二分插入排序,直接和有序序列的中间比较。 希尔排序。 希尔排序(又叫缩小增量排序,ShellSor ...
分类:
编程语言 时间:
2018-08-27 18:36:09
阅读次数:
144
一、什么是希尔排序 希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”,是直接插入排序算法的一种更高效的改进版本。 思路: 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算 ...
分类:
编程语言 时间:
2018-08-27 14:15:34
阅读次数:
131
1、选择排序 2、冒泡排序 3、插入排序 4、希尔排序 5、快速排序 ...
分类:
编程语言 时间:
2018-08-26 18:18:04
阅读次数:
173
来源 希尔排序是插入排序的改进版,插入排序是要和每一个元素进行比较,如果本身就有序,这个比较就显得多余,那么我们可以设定一个间隔来解决,这个就叫做希尔排序。希尔排序是早一批突破O(n^2)的排序算法 过程 图来自https://www.cnblogs.com/chengxiao/p/6104371. ...
分类:
编程语言 时间:
2018-08-26 16:49:33
阅读次数:
151