常见经典排序算法 1.希尔排序 2.二分插入法 3.直接插入法 4.带哨兵的直接排序法 5.冒泡排序 6.选择排序 7.快速排序 8.堆排序 一.希尔(Shell)排序法(又称宿小增量排序,是1959年由D.L.Shell提出来的) /* Shell 排序法 */ #include <stdio.h ...
分类:
编程语言 时间:
2016-04-26 12:34:35
阅读次数:
258
很多的用户朋友使用ChemDraw是为了制作化学多媒体课件,但是一些用户不知道如何使用,本文将为大家介绍如何使用ChemDraw绘制费希尔(Fischer)葡萄糖线性结构图,给大家做个例子,希望有助于药物化学多媒体课件的制作,提高药物化学多媒体教学的质量。 绘制实例之前先进行以下操作: (1)从Fi ...
分类:
其他好文 时间:
2016-04-26 10:53:00
阅读次数:
772
一 算法思想 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。 二 代码如下 // 希尔排序。随机数列中(100个),计算交换次数(交换的次数在300-400左右,时间复杂度O(n的1 ...
分类:
编程语言 时间:
2016-04-25 13:21:59
阅读次数:
169
选择排序 冒泡排序 插入排序 希尔排序 堆排序 ...
分类:
编程语言 时间:
2016-04-24 18:52:10
阅读次数:
217
一、希尔排序 希尔排序(缩小增量法) 属于插入类排序,由Shell提出,希尔排序对直接插入排序进行了简单的改进:它通过加大插入排序中元素之间的间隔,并在这些有间隔的元素中进行插入排序,从而使数据项大跨度地移动,当这些数据项排过一趟序之后,希尔排序算法减小数据项的间隔再进行排序,依次进行下去,进行这些 ...
分类:
编程语言 时间:
2016-04-23 23:02:37
阅读次数:
426
对《大话数据结构》P389~P396—希尔排序,进行了自己的理解并完善了代码。 代码和解释如下(VS2012测试通过): 运行结果: 关于时间复杂度的分析,直接把书上的内容copy过来,不是很理解,欢迎讨论。 ...
分类:
编程语言 时间:
2016-04-22 23:54:39
阅读次数:
158
插入排序:直接插入排序、希尔排序、二分插入排序 1.直接插入排序 2.希尔排序 ...
分类:
编程语言 时间:
2016-04-19 17:20:39
阅读次数:
125
最近总结一下排序算法相关知识。 排序算法的分类: 插入类排序:在已经有序的序列中,插入一个新的记录。 直接插入排序、折半插入排序、希尔排序。 交换类排序:交换类排序的核心是“交换”,即每一趟排序,都能通过一系列的“交换”动作,让一个记录排到它最终的位置上。 冒泡排序、快速排序。 选择类排序:每一趟排 ...
分类:
其他好文 时间:
2016-04-18 15:02:11
阅读次数:
116
排序算法Java实现排序算法的分类:
内部排序,在排序过程中,全部记录放在内存中,称为内部排序;
外部排序,在排序过程中需要使用外部存储(磁盘),则称为外部排序。
主要介绍内部排序:
插入排序:直接插入排序、二分法插入排序、希尔排序
选择排序:简单选择排序、堆排序
交换排序:冒泡排序、快速排序
归并排序
基数排序
插入排序直接插入排序
基本思想:对于给定的一组记录,初始时假设第一个记录自成一个有序序...
分类:
编程语言 时间:
2016-04-17 23:08:38
阅读次数:
310
排序方法 平均情况 最好情况 最坏情况 辅助空间 稳定性冒泡排序 O(n^2) O(n) O(n^2) O(1) 稳定选择排序 O(n^2) O(n^2) O(n^2) O(1) 不稳定插入排序 O(n^2) O(n) O(n^2) O(1) 稳定希尔排序O(n*log(n))~O(n^2) O(n ...
分类:
编程语言 时间:
2016-04-17 14:47:38
阅读次数:
316