数据结构实验汇报.docVIP

  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文档。上传文档
查看更多
报告编号:第十二组 “数据结构”课程设计报告 排序算法性能比较软件 学生姓名: 指导教师: 陈少军 所 在 系: 电子工程系 所学专业: 计算机科学与技术 年 级: 11级计算机(2)班 2013 年 6 月 12 日 目录 第一章 需求分析 3 1.1 设计目的 3 1.2 设计目标 3 1.3 设计理念 3 第二章 概要分析 4 2.1 排序算法性能比较软件 4 2.2 排序算法性能比较软件工作原理 5 第三章 详细设计 6 3.1 各种排序思想 6 3.2 各种排序函数实现 7 第四章 系统测试 13 4.1 系统主界面显示 13 4.2 产生随机数据排序界面 14 4.3 自行输入数据排序界面 15 4.4 随机产生逆序数据排序界面 16 第五章 性能分析 17 第六章 使用说明 17 第七章 项目总结 18 参考文献: 19 第一章 需求分析 1.1 设计目的 设计排序算法性能比较软件,方便用户选择最快捷、方便的算法,已达到对数据的快速处理。 1.2 设计目标 (1)该排序算法性能比较软件实现了总共八种排序,分别是:冒泡排序、直接插入排序、希尔排序、简单选择排序、快速选择排序、归并排序、堆排序、基数排序。程序首先实现对输入的数据进行正排序,然后再分别实现八种排序的排序比较次数与交换次数。 (2)该排序算法性能比较软件还实现了对八种排序的最优比较,从比较次数和交换次数两个方面进行对这些排序算法的评估,从而实现用户对最优排序算法的快速选择。 1.3 设计理念 排序是计算机程序设计中的一种重要的操作,它的功能是将一组无序的数列重新排列成一个有序的数列,排序算法性能比较软件的设计与实现就是方便用户的需求,大大满足用户在进行数据排列时需要。 排序的方法有很多,但是就其全面性能而言,很难提出一种被认为是最好的方法,每一种方法都有各自的优缺点,适合在不同的环境下使用。此软件通过对冒泡排序、直接插入排序、希尔排序、简单选择排序、快速选择排序、归并排序、堆排序、基数排序这几种排序进行比较。能使我们更好的掌握这些排序的基本思想及排序算法。通过该课题的设计过程,可以加深理解各种数据结构的逻辑结构、存储结构及相应运算的实现,进一步理解和熟练掌握课本中所学的各种数据结构,学会如何把学到的知识用于解决实际问题,培养我们的动手能力。 第二章 概要分析 2.1 排序算法性能比较软件 排序算法性能比较设计主程序包括:冒泡排序、直接插入排序、希尔排序、简单选择排序、快速选择排序、归并排序、堆排序、基数排序。如图2.1所示: 图2.1 排序算法性能比较软件 2.2 排序算法性能比较软件工作原理 排序算法性能比较软件输入无序数列,然后使用八种排序进行比较次数和交换次数的计算,从而得出用户理想下的最优排序算法。如图2.2所示: 图2.2 排序算法性能比较软件工作原理 第三章 详细设计 3.1 各种排序思想 冒泡排序: 这种排序的比较基本思想就是两两比较待排序的数据元素的大小,发现两个数据元素的次序相反时候,就进行交换,直到没有反序的数据为止。冒泡排序是一次的比较找出最小、最大值,然后将其放置序列的最后一个位置,再将剩下的从第一个位置开始至n-i的位置进行重复的操作。 直接插入排序: 该排序是以第n个数(需排序的数)直接与数组里已经排序的数做比较。将其插入比它大的数之前,比他小的数之后。 希尔排序: 先把数组分成等长的两个数组,用r[i]与r[n/2+i]做比较,小的在前、大的在后,然后再把两两一组的两组做比较。就这样,每次比较,每组数的个数都是上一次的两倍,最后完成整个数组的排序。 快速选择排序: 该排序是在现有的无序数组中找最值,然后作为第一个元素,之后就是每次找最值,作为下一个元素,直至最后一个元素,排序完成。 快速排序: 定义两个指针,分别指向第一个与最后一个元素,这两个元素做比较,大的放前、小的放后,然后移动指针,进行下一个比较。两次这样比较排序以后,数组变成了有序数列,该算法采用为递归算法。 归并排序: 该排序,也是需要调用递归。先把数组对半分多次,直到每组只有两个数据时。进行对比、排序。然后再两两合并,最后做到整个数组的排序完成。 堆排序: 先是对堆做比较,左子树小于本树,右子树大于本树,然后不停比较、交换,最后达到整个数组的排序。 基数排序: 基数排序法又称“桶子法”,顾名思义,它是透

文档评论(0)

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

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

1亿VIP精品文档

相关文档