各种排序算法性能比较参考.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
各种排序算法性能比较参考

毕业论文 各种排序算法性能比较 系 电子信息工程系 专业 电子信息工程技术 姓名 班级 电信083(系统) 学号 指导教师   职称 讲师 设计时间 2010.11.22-2011.1.8 目录 摘要: 3 第一章、引言 4 1.1、排序算法的背景 4 1.2、排序算法研究现状 5 1.3、排序算法的意义 5 1.4、排序算法设计目标 6 第二章、排序算法概要设计 7 2.1、原始数据 7 2.2、输出数据 7 2.3、数据处理 7 2..4、排序算法数据结构设计 8 2 .5排序算法的性能评价 8 2.6、系统的模块划分及模块功能 9 2.6.1、主程序模块 9 2.6.2可排序表单元模块 9 2.7、模块的测试数据 10 第三章、排序基本算法 11 3.1、直接插入排序函数 11 3.1.1基本原理 11 3.1.2排序过程 11 3.1.3直接插入排序算法 11 3.1.4时间复杂度分析 13 3.2、直接选择排序函数 13 3.2.1基本原理 13 3.2.2排序过程 14 3.2.3直接选择排序算法 14 3.2.4 时间复杂度分析 15 3.3冒泡排序函数 16 3.3.1基本原理 16 3.3.2排序过程 16 3.3.3冒泡排序算法 18 3.3.4 时间复杂度分析 19 3.4 Shell排序函数 19 3.4.1基本原理 19 3.4.2排序过程 20 3.4.3 Shell排序算法 21 3.4.4时间复杂度分析 22 3.5堆排序函数 23 3.5.1基本原理 23 3.5.2排序过程 23 3.5.3堆排序算法 27 3.6快速排序函数 28 3.6.1基本原理 28 3.6.2排序过程 29 3.6.3快速排序算法 31 3.6.4快速排序时间复杂度分析 33 3.7排序主调用函数 33 3.7.1基本原理 33 3.7.2排序主调用算法 34 3.7.3排序主调用时间复杂度分析 35 第四章、运行与测试 36 第五章、结论 38 致谢 39 参考文献 40 摘要: 在这两年的专业基础课的学习过程中,我们学习了程序设计基础,面向对象程序设计,数据结构——使用C++语言描述等课程。使得我们可以综合运用所学知识,更进一步的理解各个课程之间的联系。不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。在这个过程中我遇到了各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些知识理解得不够深刻。 我这次的题目是各种排序性能的比较,这就要求我首先必须掌握各种排序的原理,并且还要把各个排序结合起来综合考虑。我在实现排序功能是没有遇到太大的问题,但在进行移动次数,比较次数和交换次数的统计中始终无法得出正确的结果,最终在指导老师的帮助下才完成。在程序写好后,选择用来测试的数据也很重要,否则体现不出一些问题。在这个程序中,如果排序的数据太少,则无法体现时间排名。通过这次课程设计,使我对数据结构有了更进一步的认识和了解,要通过不断的上机操作才能更好地学习它,我也发现我的许多不足之处,对C++语言的一些库函数不太了解,不能熟练掌握各种常用函数的功能,对函数调用的正确使用不够熟悉,对C++中经常出现的错误也不熟悉。通过这次课程设计,我更加体会到了实践的重要性。??! 所使用的编程环境为TURBOC2。通过实验可知,一般情况下,记录规模较小时,直接插入排序较好;当记录规模较大且无序时,快速排序较好。 关键字:;泡排序;;快速排序;排序是计算机科学中最重要的研究问题之一, 它在计算机图形、计算机辅助设计、机器人、模式识别及统计学等领域具有广泛的应用。由于它固有的理论上的重要性,2000年它被列为对科学和工程计算的研究与实践影响最大的10大问题之一。其功能是将一个数据元素的任意序列重新排列成一个按关键字有序的序列。;泡排序;;快速排序;;泡排序;;快速排序;;泡排序;;快速排序;;泡排序;;快速排序;;泡排序;;快速排序; 2..4、排序算法数据结构设计 本程序中,考虑的内容就是待排序对象,排序的依据是关键字之间的大小比较,故在每个节点的类型定义中,至少得包含关键字key一项。不失一般性,这里就使用关键词这一项,其他都省略,具体应用加上其他数据项即可。被排序对象是由一个个节点够成,一个排序对象呢包含一系列指向一串节点的指针,排序对象的长度。本程序功能简单。 typedef struct { int key; /*关键字*/ }RecordNode; /*排序节点的类型*/ typedef struct { RecordNode *record; int n; /

文档评论(0)

2017meng + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档