- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计--排序算法比较
《数据结构与算法设计》课程设计报告
题目: 排序算法比较
学生姓名: 汪洪
学 号: 201120181805
班 级: 1121822
指导教师: 周华清
2013年1月10日
目录
需求分析········································3
总体设计········································4
详细设计········································5
类的设计···································5
现实部分········································8
随机数赋值·································8
结果输出···································8
直接插入排序·······························9
冒泡排序···································10
选择排序···································11
快速排序···································13
堆排序·····································15
二路归并排序·······························18
程序测试········································21
总结············································25
需求分析
本程序主要为了实现对各排序算法的性能比较。主要包括对直接插入排序,冒泡排序,选择排序,快速排序,堆排序二路归并排序六种排序算法在时间复杂度上的性能比较。基于此目的需要设定一个顺序表来产生一组数据,本程序用了一个长度为30000的long int型数组并用了以时间为随机种子产生了一组数组。用六个模块来实现各种排序功能并在各模块中完成计算排序所用的时间。并用一个数组保存各种排序所用的时间。为了比较各种排序的在时间上的优劣性将各个排序所用的时间进行比较并输出结果!
总体设计
详细设计
类的设计
本程序功能只是为了比较各种排序算法在时间上的优劣。所以可以用一个类来完成的有的操作,固本程序只需定义一个类。
为实现本程序功能定义一个类其中包括了一个长度300000的数组。并且为了实现各种排序功能应当设计功能函数分别实现各种类型的排序和排序后的结果。以下对这个类进行详细说明。
类名:: sortrather
数据成员:
long int a[N] 其中N为一个全局常量其值为30000,该成员用来保存一个用于保存一组数据用于排序。
Long int time[6]该数组用于保存各种排序所用的时间,以便对种种排序所用时间进行比较。
成员函数:
void pubction()
实现功能:
本函数的的作用是给数据成员 a[N]进行随机赋值。
实现算法:用系统时间作为随机种子。再将随机函数对90000的取余赋给。a[N].
print()
实现功能:
将a[N]的前30个元素输出。
实现算法:将数组元素一个一个的输出。
3.void insertsort()
实现功能:
以直接插入排序算法完成对数组a的直接插入排序。
实现算法:
以当前元素以基准元素,将后面的元素与其进行比较。如果比当前元素大则直接插到当前元素后面。否则把当前元素后移并置当前元素为前一个元素。重复此步骤。
4void bubblesort()
实现功能:
以冒泡的方式对数组a[N]进行排序。
实现算法:从第N-1个数开始与前一个数比较使之小的在的前大的在后,直到第1个数,这样便找到了最小的用同样的方法找到第二小的数······。
void selectsort(long int a[],long int n)
实现功能:
以选择排序的方法完成对a[N]的排序。
实现算法:
依次取数组a[N]中的第一个
原创力文档


文档评论(0)