各种排序算法性比较毕业论文.doc

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

毕业论文 各种排序算法性能比较 系 专业 姓名 班级 学号 指导教师   职称 设计时间 目录 摘要 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 摘要 排序算法是数据结构这门课程核心内容之一。它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛应用于信息学、系统工程等各种领域。学习排序算法是为了将实际问题中涉及的对象在计算机中进行处理。本毕业论文对直接插入排序、直接选择排序、起泡排序快速排序关键字:;泡排序;;快速排序;排序是计算机科学中最重要的研究问题之一, 它在计算机图形、计算机辅助设计、机器人、模式识别及统计学等领域具有广泛的应用。由于它固有的理论上的重要性,2000年它被列为对科学和工程计算的研究与实践影响最大的10大问题之一。其功能是将一个数据元素的任意序列重新排列成一个按关键字有序的序列。泡排序快速排序泡排序快速排序,然后将剩下的-1个元素按关键词大小依次插入该有序序列,没插入一个元素后依然保持该序列有序,经过-1趟排序后即成为有序序列。每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止.1.3时间复杂度分析 直接插入排序算法必须进行n-1趟。最好情况下,即初始序列有序,执行n-1趟,但每一趟只比较一次,移动元素两次,总的比较次数是(n-1),移动元素次数是2(n-1)。因此最好情况下的时间复杂度就是O(n)。最坏情况(非递增)下,最多比较i次,因此需要的比较次数是:所以,时间复杂度为O(n2)。初始 [49 38 65 97 76 13 27 49] 第一趟排序后 13 [38 65 97 76 49 27 49] 第二趟排序后 13 27 [65 97 76 49 38 49] 第三趟排序后 13 27 38 [97 76 49 65 49] 第四趟排序后 13 27 38 49 [49 97 65 76] 第五趟排序后 13 27 38 49 [97 97 76] 第六趟排序后 13 27 38 49 76 [76 97] 第七趟排序后 13 27 38 49 49 76 [ 97] 最后排序结果 13 27 38 49 49 76 76 97 时间复杂度分析该算法运行时间与元素的初始排列无关。不论初始排列如何,该算法都必须执行n-1趟,每趟执行n-i-1次关键字的比较,这样总的比较次数为:所以,简单选择排序的最好、最坏和平均情况的时间复杂度都为O(n2)。第一趟在序列([0]~I[n-1])中从前往后进行两个相邻元素的比较,若后者小,则交换,比较n-1次;第一趟排序结束,最大元素被交换到[n-1]中,下一趟只需在子序列([0]~I[n-2])中进行;如果在某一趟排序中未交换元素,则不再进行下一趟排序。将被排序的记录数组[1 …n]垂直排列,每个记录[i]看作是重量为[i].key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上飘浮。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止将被排序的记录数组R[1n]垂直排列,每个记录R[

文档评论(0)

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

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

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档