这个程序的头文件中包含四种排序方法:泡沫排序法(bubble),插入排序法(insertion),快速排序法(quick)和选择排序法(selection)。头文件中还使用了模板技术,以便可以同时实现几种类型的排序算法。
上传时间: 2013-12-23
上传用户:jhksyghr
附有本人超级详细解释(看不懂的面壁十天!) 一、 实际问题: 希尔排序(Shell Sort)是插入排序的一种。因D.L.Shell于1959年提出而得名。它又称“缩小增量分类法”,在时间效率上比插入、比较、冒泡等排序算法有了较大改进。能对无序序列按一定规律进行排序。 二、数学模型: 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。该方法实质上是一种分组插入方法。 三、算法设计: 1、将相隔某个增量dlta[k]的元素构成一个子序列。在排序过程中,逐次减小这个增量,最后当h减到1时,进行一次插入排序,排序就完成。增量序列一般采用:dlta[k]=2t-k+1-1,其中t为排序趟数,1≤k≤t≤[log2 (n+1)],其中n为待排序序列的长度。按增量序列dlta[0..t-1]。 2、按增量dlta[k](1≤k≤t≤[log2 (n+1)])进行一趟希尔插入排序。 3、在主函数中控制程序执行流程。 4、时间复杂度:1≤k≤t≤[log2 (n+1)]时为O(n3/2)。
上传时间: 2013-12-11
上传用户:天涯
《Delphi算法与数据结构》源码 Delphi开发人员Julian Bucknall从实用角度为广大程序员提供了有关使用算法和数据结构的一个详尽的介绍。Bucknall先从算法性能的讨论开始,涵盖了诸如数组、链表和二叉树等内容。这本书强调了查找算法(如顺序和二分查找),另外也重点介绍了排序算法(包括冒泡排序、插入排序、希尔排序、快速排序和堆排序),此外还提供了有关的优化技术。不仅如此,作者还介绍了散列和散列表、优先队列、状态机和正则表达式以及诸如哈夫曼和LZ77等数据压缩技术。 随附光盘中有作者所开发的一个相当成功的自由软件库EZDSL,另外还有可运行于各版本Delphi上和Kylix上的源代码,此外还提供了TurboPower Software公司的可执行程序。
上传时间: 2013-12-21
上传用户:标点符号
因为不同的排序方法适应不同的应用环境和要求,所以选择合适的排序方法应综合考虑下列因素: ①待排序的记录数目n; ②记录的大小(规模); ③关键字的结构及其初始状态; ④对稳定性的要求; ⑤语言工具的条件; ⑥存储结构; ⑦时间和辅助空间复杂度等。 本程序对以下7种常用的内部排序算法进行实测比较:插入排序、希尔排序、起泡排序、快速排序、归并排序、选择排序、堆排序。我主要负责的是希尔排序和堆排序。
上传时间: 2013-12-24
上传用户:qiao8960
排序及应用 题目一:统计成绩 1. 实验目的:掌握常用的排序方法,深刻理解排序的定义和各种排序方法的特点,并能灵活应用。 2. 实验内容: (1) 输入n个学生的考试成绩,每个学生信息由姓名与分数组成; (2)选择一种排序算法,按分数高低次序,打印出每个学生的名次,分数相同的为同一名次。 (3)按名次给出每个学生的姓名与分数。 3. 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。 题目二:按字典顺序排序 1. 实验目的:掌握常用的排序方法,深刻理解排序的定义和各种排序方法的特点,并能灵活应用到字符串排序中。 2. 实验内容 (1)输入若干个国家名称(所有的名称均用大写或小写表示) (2)选择一种排序算法,将输入的国家进行排序; (3)按字母顺序输出国家名称。 3. 实验要求:任选一种高级程序语言编写源程序,并调试通过,测试正确。
上传时间: 2015-11-08
上传用户:jackgao
c语言数值计算算法,包括各种排序算法、差值、迭代等
上传时间: 2013-12-07
上传用户:璇珠官人
算法中经典问题,排序算法的实现。其中有冒泡、改进的快速、堆、选择排序的实现。
标签: 算法
上传时间: 2016-01-04
上传用户:lanhuaying
这是归并排序的源代码,可以输出每一趟的排序结果,有助于理解归并排序算法的核心思想。
上传时间: 2013-12-24
上传用户:520
一 :排序n个元素,元素为随机生成的长为1~16的字符串,n的取值为2k(k取4、6、8、10、12、16、18、20),排序算法分别为直接插入排序, 冒泡排序,堆排序,归并排序,快速排序,比较各种排序在不同输入下的运行时间. 二:排序n个元素,元素为随机生成的1~10000的正整数,n的取值为2k(k取4、6、8、10、12、16、18、20),排序算法分别为直接插入排序,快速排序,基数排序,计数排序,比较各种排序在不同输入下的运行时间.
上传时间: 2016-02-07
上传用户:dsgkjgkjg
排序是数据结构中的一块难点,也是重点。熟练的掌握各种各样的排序算法是对每个学生的基本的要求。也是考研的重点
上传时间: 2016-02-29
上传用户:stvnash