数据结构c语言设计比较各种排序方法的效率.docxVIP

数据结构c语言设计比较各种排序方法的效率.docx

  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文档。上传文档
查看更多
课程设计说明书 设计名称: 程序设计语言强化课程设计题 目: 比较各种排序方法的效率 学生姓名: 梁汉荣专 业: 网络工程 班 级: 10 网络工程 2 学 号: 2010394236 指导教师: 顾艳春 日 期: 2012 年 3 月 8 日 课程设计任务书 一、 设计题目 比较各种排序方法的效率 二、 主要内容 选择四种以上的排序方法,采用随机生成的数据,登记并比较各个排序方法的比较次数和交换次数,验证各个排序方法效率的理论分析的结果。 三、 具体要求 围绕课程设计的目的和意义,基本要求如下: 每次随机生成的数据不小于 100 个 采用顺序存储结构,登记多次结果 经过大量的统计计算,给出各种排序方法的平均效率的比较。把统计结果与理论分析结论进行对照。 四、 进度安排 1、资料查找、系统分析,概要设计;时间安排 2 天 2、系统详细设计、功能设计;时间安排 2 天 3、算法实现、编程调试;时间安排 5-7 天 4、资料整理、课程设计说明书编写。时间安排 1 天 五、 完成后应上交的材料 1、课程设计说明书(所使用的数据结构说明、程序流程图、功能模块图、核心算法等) 2、相关源程序文件 六、 总评成绩 指导教师 签名日期 年 月 日 系 主 任 审核日期 年 月 日 目 录 一、设计任务的主要算法分析… 1 主要算法具体分析 2 二、程序的流程图… 3 各种排序算法的 N - S 图 3 1. 总流程图模块………………………………………… 3 2. 直接插入排序模块………………………………………… 4 3. 冒泡排序模块 ………………………………………… 5 4. 简单选择模块…………………………………………… 5 快速排序模块 6 堆排序模块 6 三、各个模块的源代码 7 3.1 各种排序算法……………………………………………… 7 1. 直接插入排序函数………………………………………… 7 2. 冒泡排序函数……………………………………………… 8 3. 简单选择排序函数………………………………………… 9 4.快速排序函数……………………………………………… 10 5.堆排序函数………………………………………………… 11 输出函数… 13 随机生成函数… 13 8. 主函数… 16 四、程序运行效果图 20 4.1 登陆画面 ……………………………………………… 20 各种排序结果显示画面( 100 个数据随机生成 5 次)…21 总的、平均的比较次数和交换次数显示画面(100 个数据随机 生 成 5 次)… 23 总的、平均的比较次数和交换次数显示画面(1000 个数据随机生成 100 次)…………………………………………………… 24 五、使用说明… 24 六、设计心得 24 课程设计中遇到的主要问题和解决方法 24 本程序的创新和得意之处 25 设计中存在的不足及改进的设想 25 本次课程设计的感想和心得体会… 25 佛山科学技术学院课程设计用纸 佛山科学技术学院课程设计用纸 PAGE PAGE 2 主程序一.算法分析 主程序 直 冒 简 快 堆 随 接 泡 单 速 排 机 插 排 选 排 序 生 入 序 择 序 成 直接插入排序:将记录插入到已排好序的有序表中,得到一个新的, 记录数增加的有序表。 冒泡排序:是基于交换排序的一种算法。它是依次两两比较待排序元素;若为逆序(递增或递减)则进行交换,将待排序元素从左至右比较一遍称为一趟“冒泡”。 每趟冒泡都将待排序列中的最大(小)关键字交换到最后位置,直到全部元素有序为止。 简单选择排序:令 i 从 1 至 n-1,进行 n-1 趟选择操作。 快速排序:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,已达到整个序列有序。 堆排序:使记录序列按关键字非递减有序排列,则在堆排序的算法中先建一个“大顶堆”,即先选得一个关键字为最大的记录并与序列中最后一个记录交换,然后对序列中前 n-1 记录进行筛选,重新将它调整为一个“大顶堆”,如此反复直至排序结束。 随机生成函数:用 srand((unsigned)time(NULL))随机生成数据并使用 不同排序方法排序。定义结构体数组 typedef int keytype; //定义关键字类型为整型typedef struct{ keytype key; }datatype; //记录类型 datatype R[MAXSIZE]; //定义结构体数组 1.1 主要算法具体分析: 这个排序算法设计个以静态结构体应用为基础加上 C 的基础语法一起的一个综合系统程序。 主程序是 goto 语句和 for 循环的应用 直接插入函数是一个将记录插入到

文档评论(0)

tianya189 + 关注
官方认证
文档贡献者

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

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档