欢迎来到天天文库
浏览记录
ID:26034483
大小:345.00 KB
页数:27页
时间:2018-11-24
《数据结构课程设计--排序算法比较》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、《数据结构与算法设计》课程设计报告题目:排序算法比较学生姓名:汪洪学号:201120181805班级:1121822指导教师:周华清2013年1月10日27目录需求分析········································3总体设计········································4详细设计········································5类的设计···································5现实部分······················
2、··················8随机数赋值·································8结果输出···································827直接插入排序·······························9冒泡排序···································10选择排序···································11快速排序···································13堆排序·················
3、····················15二路归并排序·······························18程序测试········································2127总结············································2527一.需求分析本程序主要为了实现对各排序算法的性能比较。主要包括对直接插入排序,冒泡排序,选择排序,快速排序,堆排序二路归并排序六种排序算法在时间复杂度上的性能比较。基于此目的需要设定一个顺序表来产生一组数据,本程序用了一个长度为30000的lo
4、ngint型数组并用了以时间为随机种子产生了一组数组。用六个模块来实现各种排序功能并在各模块中完成计算排序所用的时间。并用一个数组保存各种排序所用的时间。为了比较各种排序的在时间上的优劣性将各个排序所用的时间进行比较并输出结果!27一.总体设计Switch结构设定long数组开始进行快速排序进行冒泡排序进行冒泡排序进行选择排序二路归并排序堆排序冒泡排序直接插入排序快速排序选择排序保存所需时间进行二路归并排序进行堆排序进行选择排序进行直接插入排序结束对所有排序的时间进行从小到大的排序并输出结果获得所有排序所花费的时间(包括未switch结构中未被选中的排序)
5、保存所需时间保存所需时间保存所需时间保存所需时间保存所需时间27一.详细设计1.类的设计本程序功能只是为了比较各种排序算法在时间上的优劣。所以可以用一个类来完成的有的操作,固本程序只需定义一个类。为实现本程序功能定义一个类其中包括了一个长度300000的数组。并且为了实现各种排序功能应当设计功能函数分别实现各种类型的排序和排序后的结果。以下对这个类进行详细说明。类名::sortrather数据成员:longinta[N]其中N为一个全局常量其值为30000,该成员用来保存一个用于保存一组数据用于排序。Longinttime[6]该数组用于保存各种排序所用的
6、时间,以便对种种排序所用时间进行比较。成员函数:1.voidpubction()实现功能:本函数的的作用是给数据成员a[N]进行随机赋值。实现算法:用系统时间作为随机种子。再将随机函数对90000的取余赋给。a[N].2.print()27实现功能:将a[N]的前30个元素输出。实现算法:将数组元素一个一个的输出。3.voidinsertsort()实现功能:以直接插入排序算法完成对数组a的直接插入排序。实现算法:以当前元素以基准元素,将后面的元素与其进行比较。如果比当前元素大则直接插到当前元素后面。否则把当前元素后移并置当前元素为前一个元素。重复此步骤。
7、4voidbubblesort()实现功能:以冒泡的方式对数组a[N]进行排序。实现算法:从第N-1个数开始与前一个数比较使之小的在的前大的在后,直到第1个数,这样便找到了最小的用同样的方法找到第二小的数······。1.voidselectsort(longinta[],longintn)实现功能:以选择排序的方法完成对a[N]的排序。实现算法:依次取数组a[N]中的第一个、第二个······27到第a[N]个,与数组中它所在位置后的其它元素进行比较并使a[1],a[2],......a[N]取余下元素的最小值。1.voidquick(longinta[
8、],longintleft,longintright)实现功能:用
此文档下载收益归作者所有