- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数据结构》课程设计报告
实验题目: 内排序算法比较
问题解析(对问题的分析、理解和解题方法):
伪随机数的产生是由 time. h 头文件,以rand(time(0))为随机种子的函数rand()产生,可以保持数据的无序性。
生成三种文件,分别保存正序.逆序.和随机产生的数据,并在程序执行过程中可选择用某一文件中的数据。
用类涵盖六种排序算法的内部操作,并定义数组元素类。
输入以文件的方式来进行,必须保证对六种排序算法的输入数据是一样且连续的。
对于比较次数的统计加在比较判断的前边,在判断失败时也能统计到比较次数。
对于存在递归的快速排序和存在子函数的堆排序的比较次数.
移动次数统计采用以引用做函数参数。
数据结构选择:
选用动态数组为内部基本运算结构,外部数据选用文件。
算法设计:
构建动态数组元素类,六种排序操作.输出操作为该类的函数,输入操作包含在构造函数中。
需求分析:
外部数据只可以手动输入随机数的个数。程序运行中可选择采用多种文件用各种算法测试多次。
程序主线:
产生正序文件f1.txt,倒序文件f2.txt,并生成三个随机文件f3.txt f4.txt f5.txt。选择将某一文件导入程序,进行排序,并测试各种算法的移动和比较次数。最后对结果进行分析。
任务分工、进度计划:
周一:六种排序算法嵌入各主程序,并进行初步测算。
周二:主要解决程序文件输入,输出问题和各函数的接口问题。
周三:对程序进行调整,解决部分错误输出。
用户手册:
用户需要选择是否生成新的文件,还需要外部输入待排序数组元素个数即可,程序运行中用户可选择用某一文件进行排序。
测试结果:请输入排序元素个数:
10000
请输入读入何种待排序文件:(0:正序 1:逆序 2:随机文件1 3:随机文件2 4:随机
文件3)
0
Bubble:比较次数=9999 移动次数:=0
InsertSort:比较次数=9999 移动次数:=19998
SSort:比较次数移动次数:=29997
QSort:比较次数=19998 移动次数:=39996
ShellSort:比较次数=120009 移动次数:=240018
HeapSort:比较次数=264502 移动次数:=394251
是否继续测试:(按任意键继续,按0退出:)
1
请输入排序元素个数:
10000
请输入读入何种待排序文件:(0:正序 1:逆序 2:随机文件1 3:随机文件2 4:随机
文件3)
1
Bubble:比较次数移动次数:=149985000
InsertSort:比较次数=9999 移动次数:=19998
SSort:比较次数移动次数:=29997
QSort:比较次数=19998 移动次数:=39996
ShellSort:比较次数=120009 移动次数:=240018
HeapSort:比较次数=264502 移动次数:=394251
是否继续测试:(按任意键继续,按0退出:)
1
请输入排序元素个数:
12000
请输入读入何种待排序文件:(0:正序 1:逆序 2:随机文件1 3:随机文件2 4:随机
文件3)
2
Bubble:比较次数移动次数:=109210041
InsertSort:比较次数=11999 移动次数:=23998
SSort:比较次数移动次数:=35997
QSort:比较次数=19742 移动次数:=38153
ShellSort:比较次数=144012 移动次数:=288024
HeapSort:比较次数=324068 移动次数:=482526
是否继续测试:(按任意键继续,按0退出:)
1
请输入排序元素个数:
13000
请输入读入何种待排序文件:(0:正序 1:逆序 2:随机文件1 3:随机文件2 4:随机
文件3)
3
Bubble:比较次数移动次数:=126842301
InsertSort:比较次数=12999 移动次数:=25998
SSort:比较次数移动次数:=38997
QSort:比较次数=21614 移动次数:=41570
ShellSort:比较次数=156009 移动次数:=312018
HeapSort:比较次数=353720 移动次数:=526605
是否继续测试:(按任意键继续,按0退出:)
1
请输入排序元素个数:
14000
请输入读入何种待排序文件:(0:正序 1:逆序 2:随机文件1 3:随机文件2 4:随机
文件3)
4
Bubble:比较次数移动次数:=146827053
InsertSort:比
文档评论(0)