课程设计报告_内部排序算法的性能分析.docVIP

课程设计报告_内部排序算法的性能分析.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程设计报告_内部排序算法的性能分析

目 录 内部排序算法的性能分析 1 1 引 言 1 1.1设计背景 1 1.2设计目的 2 1.3设计内容 2 1.4设计过程 3 1.5编程环境 3 2 系统功能分析 3 2.1 问题定义 3 2.2可行性分析 4 2.3需求分析 4 3 总体设计 5 3.1数据流程图 5 3.2系统总体结构 6 3.3文件组织结构 6 3.4数据结构定义 7 3.5函数接口说明 8 3.6功能宏说明 8 3.7性能比较方法 9 4 详细设计 10 4.1直接排序 10 4.2起泡排序 11 4.3选择排序 11 4.4快速排序 12 4.5希尔排序 13 4.6堆排序 13 4.7总结和实现 14 5 系统实现及数据分析 15 5.1系统实现 15 5.2数据分析 15 6 结束语 18 参考文献 19 程序清单 20 内部排序算法的性能分析 学生姓名:方山城 指导老师:卢曼莎 摘 要 在数据结构课程中,内部排序算法是相当重要的一部分,而在实际应用中,内部排序算法极大地影响着系统资源的分配。在本文中,通过编码用C语言实现测试程序对常见的六种排序算法性能从比较次数、移动次数和消耗时间方面进行了对比,分析数据得出结论,为在实际应用中选择合适排序算法提供了实验依据。 关键词 内部排序;性能 ;比较次数;移动次数;时间消耗 1 引 言 1.1设计背景 排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序序列。1/4的时间用在排序上,而对安装程序,多达50%的时间花费在对表的排序上[1]. 在本学期的数据结构课程[2]中,书上介绍的多种排序算法从算法原理,实现以及时间复杂度等方面进行了比较详细介绍,但对于各种算法的性能分析仅仅是停留在时间复杂度层面上,没有比较直观的对常见的六种排序算法性能的对比,所以,在学习过程中亟需通过实践设计深入的理解各种排序算法性能差异。 1.2设计目的 加深理解各种数据结构的逻辑结构、存储结构 能熟练掌握各种排序算法的原理和实现 提高C语言编程能力,提高动手能力 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能 设计并实现一个能直观反映六种排序算法性能的程序 分析和测试数据得到的结果,得出六种排序算法的性能差异 1.3设计内容 涉及算法 排序算法的种类繁多,在本课程设计中选取常用的六种算法进行研究和设计:直接排序、起泡排序、简单选择排序、快速排序、希尔排序、堆排序算法。 在今后学习中还可以在本次设计的基础之上增加其他的算法进行研究分析。 实现功能 如图1所示,其中关键字交换记为3次移动,时间消耗为基本条件相同情况下 图1 实现功能 1.4设计过程 理论知识学习:本课程设计主要参考长沙理工大学计算机与通信工程学院2011-2012学年数据结构教材《数据结构(C语言版)》[2],理论知识是一切研究设计的根本,所以扎实基础为研究设计的第一步。根据衡量一个算法时间度量是用时间复杂度,表示为T(n) = O(f(n))它表示算法执行时间是问题规模n的某个函数,执行时间增长率和f(n)增长率相同。所以,此阶段将研究其复杂度问题 分析和撰写文档:按照软件生命周期首先定义并分析内部排序的性能问题,研究选题各测试程序的可行性后分析相关需求,总体设计测试程序功能后修改并详细设计细节问题,最后编码和测试。在这一整个过程中,撰写相应文字部分,完成本论文的提纲并撰写相应已实现部分。 分析运行结果并得出结论:最后一部分即为编码并测试之后对测试数据的测试结果进行分析,并得出具有建设性的结论(至少对自己学习数据结构阶段)。并根据结论思考今后编程过程中需要注意的问题。 1.5编程环境 软件方面:测试程序在Windows 7下的Visual Studio 2008环境中编写并测试。 硬件方面:测试数据的生成及结果在CPU酷睿i5-2430(双核,2.4GHz,睿频可达3.0GHz)、GT540(1G独力显存)、4GB内存的微机生成和通过。 编程语言:选用语言为C,但测试程序仅作研究演示,不做工程应用,为表达直观之便,未使用标准C,一些部分借用C++语法,如“引用()本程序只做排序性能的分析,故人机交换方面要求不高,相关控制用宏实现Visual Studio 2008进行前台设计、系统随机数产生数据,用户通过界面操作,系统自动给予合理分析,由于Visual Studio 2008功能强大、使用灵活、良好可扩展性、以及广泛实际应用,充分说明了本系统在技术方面的可行性。 工具可行性 随着计算机的普及,信息时代对软件的应用已不是人们的难题,同时硬件设备完全能够满足人们的需求,本设计的工具基础详见1.5节,故工具可行性。 经济可行性 这是排序的性能分析系统,投入的人

文档评论(0)

woai118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档