- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
几种常见排序方的比较
重庆邮电大学移通学院
《计算机软件技术基础》
课程报告
题 目 几种常见排序方法的比较
姓 名 谢枞
学 号 0111100320
班 级
专 业 通信工程
2012年 6 月4日
摘 要
该程序是用C++语言实现的,在程序中随机生成N个数据,对这些数进行多种方法的排序,所用的这些排序方法都是在数据结构课中学习过的比如:插入排序、快速排序、冒泡排序等,而且还要对各个排序做出相应的比较。
该演示程序以用户和计算机的对话方式执行,每次测试完毕,列表显示各种比较指标值。
最后对结果作出了简单分析并将结果排序,包括对各组数据得出结果波动大小给予解析。
关键字:插入排序、冒泡排序、比较的个数、改变的个数、所用的时间。
目 录
摘要·················································Ⅰ
目录·················································Ⅱ
问题描述··········································1
题目内容······································1
基本要求······································1
测试数据······································1
需求分析··········································2
输入输出的形式和输入值的范围··················2
程序所能达到的功能····························2
概要设计··········································3
程序所需的抽象数据类型························3
系统功能模块··································3
外部功能模块图································ 3
主函数功能模块图·······························3
详细设计···········································4
4.1 整个程序的流程图··································4
4.2 插入排序及其主要代码······························5
4.3 二路合并排序及其主要代码··························6
4.4 冒泡排序及其主要代码······························7
5 调试分析···········································8
5.1 调试分析结果······································9
6 总结···············································10
1问题描述
1.1题目内容
本演示程序对以下几种常用的内部排序算法进行实测比较:起泡排序、直接插入排序、二路合并排序。
主要工作是设法在已知算法中的适当位置插入对关键字的比较次数和移动次数的计数操作。程序还可以考虑几组数据的典型性,如:正序、逆序和不同程度的乱序。注意采用分块调试的方法。
1.2基本要求
1. 待排序表的表长不小于100,其中数据要用的随机数产生程序产生,至少要用5组不同的输入数据体比较,比较的指标为:有关键字参加的比较次数和关键字的移动次数(关键字交换计为3次的移动)。
2. 演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”下,用户可由键盘输入待排序表的表长和不同的测试数据的数组,每次测试完毕,列表显示各种比较指标值。
3.最后对结果作出简单分析,包括对各组数据得出结果波动大小给予解析。
1.3 测试数据
由函数rand随机产生的数据。
2 需求分析
2.1输入输出的形式和输入值的范围
由于程序中所需的数据都是有函数随机生成的整形数,不需要用户自己输入,用户只需要对演示程序中的一些提示做一些必要的选择以便于程序的
文档评论(0)