算法分析与复杂性理论实验报告基本排序

算法分析与复杂性理论实验报告基本排序

ID:20410092

大小:304.67 KB

页数:15页

时间:2018-10-13

算法分析与复杂性理论实验报告基本排序_第1页
算法分析与复杂性理论实验报告基本排序_第2页
算法分析与复杂性理论实验报告基本排序_第3页
算法分析与复杂性理论实验报告基本排序_第4页
算法分析与复杂性理论实验报告基本排序_第5页
资源描述:

《算法分析与复杂性理论实验报告基本排序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、深圳大学实验报告课程名称:算法设计与分析实验名称:多种排序算法的算法实现及性能比较学院:计算机与软件学院专业:计算机科学与技术报告人:张健哲学号:2013150372班级:3同组人:无指导教师:李炎然实验时间:2015/3/25——2015/4/8实验报告提交时间:2015/4/8教务处制一.实验目的1.掌握选择排序、冒泡排序、合并排序、快速排序、插入排序算法原理2.掌握不同排序算法时间效率的经验分析方法,验证理论分析与经验分析的一致性。二.实验步骤与结果实验总体思路:利用switch结构来选择实验所要用的排序算法,每一种排序都用相同的计算运行时间的代码,不同的

2、算法就在算法实现部分进行改动(如下代码1至5所示)。不断的改变数据规模,每一个规模在实验时,用循环进行多次实验并作为样本记录消耗的时间。最后输出在不同排序算法下,不同的数据规模的20次实验样本和平均用时(如下图1至5所示)。各排序算法的实现及实验结果:(注1:以下代码全部为伪代码,具体代码实现请参照程序中的代码)(注2:图中显示的时间单位均为毫秒,图中“排序所花时间”一项为平均消耗时间,平均消耗时间结果以20组样本计算平均值后取整得到(并非四舍五入)。)1、选择排序代码1:fori=0ton-2min=iforj=i+1ton-1ifele[min]>ele[j

3、]min=jswap(ele[i],ele[min])//交换图1、选择排序在不同数据规模下排序所消耗的时间2、冒泡排序代码2:fori=0ton-1forj=0ton-1-iifa[j]>a[j+1]swap(a[j],a[j+1])//交换图2、冒泡排序在不同数据规模下排序所消耗的时间3、合并排序代码3:Merge(ele[1...n],left,right)middle=(left+right)/2ifright>1eft+1Merge(ele,left,middle)Merge(ele,middle+1,right)l←leftr←righti←left

4、whilel<=middle&&r<=right//两组分别一一比较,数据小的放入eleifele[l]<=ele[r]t[i++]←ele[l++]elset[i++]←ele[r++]whilel>middle&&r<=r//只剩一组还有剩余的时,将剩下的按顺序放入ele[i++]=s[r++]whilel<=middle&&r>rightele[i++]=s[l++];图3、合并排序在不同数据规模下排序所消耗的时间4、快速排序代码4:quick(ele[0...n-1],left,right)ifl

5、lele[l]//与上面相反ll++ifltempele[j+1]←ele[j]ele

6、[j+1]←temp图5、插入排序在不同数据规模下排序所消耗的时间三.实验分析选择排序:图6、由图1数据整合而成的折线图为了更清晰的看到排序的数据规模与排序所需时间之间的影响,我将实验的数据规模进行了一些调整,得到的平均数据依旧是以20组数据样本取平均数算得(如下表1、图7所示):(由于图片占空间大且表达不直白,我将所得数据做成表格分析,下同)数据规模:1000020000300004000050000耗时(ms)158634142425413953表1、选择排序在不同数据规模下排序所消耗的时间图7、由表1数据整合而成的折线图图形上:形状基本符合n2(二次增长)

7、数据上:我们发现当数据规模增大两倍时:当数据规模增大两倍时:10000→20000:15822=632≈63410000→30000:15832=1422≈142420000→40000:63422=2536≈2541其他倍数也可得到类似的结果。结论:我们发现,由于时间复杂度是o(n2)并且该排序的主要操作是比较操作,当数据规模扩大n倍时,相应的在时间的消耗上会扩大n2倍,同时我们发现,理论上乘以n2后的数据普遍会略小于实际数据,这主要原因可能是除了比较操作之外,赋值操作也随着n的增加逐渐增大,并且会在时间上体现出来,此外轻微的误差可能是数据的差异造成或者电脑等

8、其他因素造成。冒泡排序:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。