数据结构(C语言)各种排序算法性能比较毕业论文.doc

数据结构(C语言)各种排序算法性能比较毕业论文.doc

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

毕业论文 各种排序算法性能比较 系 电子信息工程系 专业 电子信息工程技术(嵌入式系统) 姓名 于广振 班级 电信083(系统) 学号0801133115 指导教师 郑雪芳   职称 讲师 设计时间 2010.11.22-2011.1.8 目录 摘要 2 第一章 绪论 3 1.1 研究的背景及意义 3 1.2 研究现状 3 1.3 本文主要内容 4 第二章 排序基本算法 5 2.1 直接插入排序 5 2.1.1基本原理 5 2.1.2排序过程 5 2.1.3时间复杂度分析 5 2.2 直接选择排序 6 2.2.1基本原理 6 2.2.2 排序过程 6 2.2.3 时间复杂度分析 6 2.3冒泡排序 7 2.3.1基本原理 7 2.3.2排序过程 7 2.3.3 时间复杂度分析 8 2.4 Shell排序 8 2.4.1基本原理 8 2.4.2排序过程 9 2.4.3时间复杂度分析 9 2.5堆排序 9 2.5.1基本原理 9 2.5.2排序过程 10 2.5.3时间复杂度分析 13 2.6快速排序 13 2.6.1基本原理 13 2.6.2排序过程 14 2.6.3时间复杂度分析 15 第三章 系统设计 16 3.1数据定义 16 3.2 程序流程图 16 3.3 数据结构设计 17 3.4 系统的模块划分及模块功能实现 17 3.4.1系统模块划分 17 3.4.2各排序模块功能实现 18 第四章 运行与测试 29 第五章 总结 31 参考文献 32 致谢 33 摘要 排序算法是数据结构这门课程核心内容之一。它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛应用于信息学、系统工程等各种领域。学习排序算法是为了将实际问题中涉及的对象在计算机中进行处理。本毕业论文对直接插入排序、直接选择排序、起泡排序、Shell排序、快速排序以及堆排序算法进行比较。 我们设置待排序表的元素为整数,用不同的测试数据做测试比较,长度取固定的三种,对象由随机数生成,无需人工干预来选择或者输入数据。比较的指标为关键字的比较次数和关键字的移动次数。 经过比较可以看到,当规模不断增加时,各种算法之间的差别是很大的。这六种算法中,快速排序比较和移动的次数是最少的。也是最快的一种排序方法。堆排序和快速排序差不多,属于同一个数量级。直接选择排序虽然交换次数很少,但比较次数较多。 关键字:直接插入排序;直接选择排序;起泡排序;Shell排序;快速排序;堆排序; 第一章 绪论 1.1 研究的背景及意义 排序是计算机程序设计中的一种重要操作。它的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列。 排序算法是在整个计算机科学与技术领域上广泛被使用的术语。排序算法是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。本人在研究各种算法的过程中,对其特点、效率、适用性等在不同的数据集上做全面的分析和比较,并以动态演示的方式展示一些经典排序算法运行过程,目的有以下五个方面:做算法的对比研究,培养研究能力;开发一个独立的软件,培养程序设计和软件开发能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;为教学服务,研究结果对抽象的 《 算法与数据结构 》 的教学有一定的辅助作用。 排序是计算机科学中最重要的研究问题之一, 它在计算机图形、计算机辅助设计、机器人、模式识别及统计学等领域具有广泛的应用。由于它固有的理论上的重要性,2000年它被列为对科学和工程计算的研究与实践影响最大的10大问题之一。其功能是将一个数据元素的任意序列重新排列成一个按关键字有序的序列。 1.2 研究现状 随着计算机技术的日益发展,其应用早已不局限于简单的数值运算。而涉及到问题的分析、数据结构框架的设计以及插入、删除、排序、查找等复杂的非数值处理和操作。排序算法的学习就是为以后利用计算机资源高效地开发非数值处理的计算机程序打下坚实的理论、方法和技术基础。近来国内外专家学者们对排序算法又有了新的研究和发现。例如:我国山东大学的张峰和张金屯两位教授共同研究了 《 我国植被数量分类和排序研究进展 》 这课题。很值得有关部门去学习和研究。 1.3 本文主要内容 排序的方法很多,但是就其全面性能而言,很难提出一种被认为是最好的方法,每一种方法都有各自的优缺点,适合在不同的环境下使用。如果排序中依据的不同原则对内部排序方法进行分类,则大致可分为直接插入排序、直接选择排序、起泡排序、Shell排序、快速排序、

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档