原文链接:http://www.orlion.ga/193/ 由上图可看到希尔排序先约定一个间隔(图中是4),然后对0、4、8这个三个位置的数据进行插入排序,然后向右移一位对位置1、5、9进行插入排序按照此规律直到全部参与了排序。然后将间隔约定为4-1=3,然后继续进行如上的排序方法。具体过程如下: ...
分类:
编程语言 时间:
2016-04-03 23:29:01
阅读次数:
172
基本思想 1.把记录按步长 gap 分组,对每组记录采用直接插入排序方法进行排序。2.随着步长逐渐减小,所分成的组包含的记录越来越多,当步长的值减小到 1 时,整个数据合成为一组,构成一组有序记录,则完成排序。 代码实现 效率分析 不稳定 空间复杂度:O(1) 时间复杂度:O(nlog2n) 最坏情 ...
分类:
编程语言 时间:
2016-04-03 18:47:23
阅读次数:
152
今天好好的把各种排序都总结了一下,感觉印象加深了不少! 下面列出各种排序: 1.插入排序 2.冒泡排序 3.快速排序 4.归并排序 5.选择排序 6.堆排序 7.希尔排序 ...
分类:
编程语言 时间:
2016-04-03 18:44:51
阅读次数:
146
序言 这是一篇全面介绍 Webkit 和 Gecko 内部操作的入门文章,是以色列开发人员塔利·加希尔大量研究的成果。在过去的几年中,她查阅了所有公开发布的关于浏览器内部机制的数据(请参见资源),并花了很多时间来研读网络浏览器的源代码。她写道: 在 IE 占据 90% 市场份额的年代,我们除了把浏览 ...
分类:
其他好文 时间:
2016-04-03 00:17:02
阅读次数:
409
交换排序(冒泡排序、快速排序) 插入排序(直接插入排序、希尔排序)、 选择排序(直接选择、堆排序) 归并排序 基排序 1.冒泡排序 时间复杂度:最优情况下是O(n),最坏情况和平均情况是O(n2) 空间复杂度:O(1) 稳定 算法实现是 从小到大排序 结果是1 2 3 5 6 7 2 快速排序 时间 ...
分类:
编程语言 时间:
2016-04-02 17:31:55
阅读次数:
221
答案A 不稳定:简单选择排序,希尔排序,快速排序,堆排序,冒泡 稳定:直接插入排序,归并排序,基数排序 ...
分类:
其他好文 时间:
2016-04-02 12:01:43
阅读次数:
147
排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。 内排序有可以分为以下几类: (1)、插入排序:插入排序、二分法插入排序、希尔排序。 (2)、选择排序:选择排序、堆排序。 (3)、交换排序 ...
分类:
编程语言 时间:
2016-03-31 16:24:41
阅读次数:
213
背景: 原来虽然有学过数据结构,排序一些,但是没有好好学,现在复习一下。 正题: 1、直接插入排序 直接贴一下百科:每次取出无序数组中的一个数,把他和有序数组中的数比较,插到适当位置,直到无序表为空,有序表满。 原理很简单,就我而言,首先想到的是新建一个new_list数组,充当有序表,然后一步一步 ...
分类:
编程语言 时间:
2016-03-30 22:14:59
阅读次数:
172
恢复内容开始 接算法的上一系列,在前几篇博客中,已经分析了 交换算法(冒泡排序,快速排序)、插入算法(直接插入排序,希尔排序),这一系列我们谈谈选择排序。 选择排序分为两种,一种是直接选择排序,一种是堆排序,下面我们看 直接选择排序: 百度百科: 选择排序(Selection sort)是一种简单直 ...
分类:
编程语言 时间:
2016-03-30 00:07:12
阅读次数:
407
问题描述:Sort a linked list in O(n log n) time using constant space complexity. O(n lgn)时间复杂度,O(1)空间复杂度。 分析:O(n lgn)时间复杂度的排序算法有几个(快排,归并,希尔,堆),但是O(1)空间复杂度就 ...
分类:
其他好文 时间:
2016-03-29 14:18:49
阅读次数:
134