2022年分治法实现归并排序算法算法设计与分析实验报告 .pdf
《2022年分治法实现归并排序算法算法设计与分析实验报告 .pdf》由会员分享,可在线阅读,更多相关《2022年分治法实现归并排序算法算法设计与分析实验报告 .pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、算法设计与分析实验报告实验名称分治法实现归并排序算法评分实验日期年月日指导教师姓名专业班级学号一.实验要求1.了解用分治法求解的问题:当要求解一个输入规模为n,且 n的取值相当大的问题时,如果问题可以分成k个不同子集合,得到k个不同的可独立求解的子问题,其中1kn,而且子问题与原问题性质相同,原问题的解可由这些子问题的解合并得出。那末,对于这类问题分治法是十分有效的。2.掌握分治法的一般控制流程。DanC(p,q)global n,A1:n;integer m,p,q;/1p q n if Small(p,q)then return G(p,q);else m=Divide(p,q);/pmq
2、 return Combine(DanC(p,m),DanC(m+1,q);endif end DanC 3实现典型的分治算法的编程与上机实验,验证算法的时间复杂性函数。二.实验内容1.编程实现归并排序算法,程序中加入比较次数的计数功能,输出排序结果和比较次数。2.输入 10组相同的数据,验证排序结果和完成排序的比较次数。3.与复杂性函数所计算的比较次数比较。4.用表格列出比较结果。5.给出文字分析。三.程序算法1.归并排序算法procedure MERGESORT(low,high)/A(low;high)是一个全程数组,它含有high-low+10个待排序的元素/integer low,h
3、igh;if lowmid then for kj to high do /处理剩余的元素/B(i)A(k);i i+1 repeat else for kh to mid do B(i)A(k);i i+1 repeat endif 将已归并的集合复制到A end MERGE 2.快速排序算法QuickSort(p,q)/将数组 A1:n 中的元素 Ap,Ap+1,Aq按不降次序排列,并假定 An+1 是一个确定的、且大于 A1:n中所有的数。/int p,q;global n,A1:n;if pq then j=Partition(p,q+1);/划分后 j 成为划分元素的位置名师资料总结
4、-精品资料欢迎下载-名师精心整理-第 2 页,共 8 页 -QuickSort(p,j-1);QuickSort(j+1,q);endif end QuickSort procedure PARTITION(m,p)/退出过程时,p带着划分元素所在的下标位置。/integer m,p,i;global A(m:p-1)vA(m);i m /A(m)是划分元素/loop loop ii+1 until A(i)v repeat /i由左向右移/loop pp-1 until A(p)v repeat /p由右向左移/if ip then call INTERCHANGE(A(i),A(p)/A(
5、i)和A(p)换位/else exit endif repeat A(m)A(p);A(p)v /划分元素在位置p/End PARTITION四.程序代码1.归并排序#include#include#include#include#define M 11 typedef int KeyType;typedef int ElemType;struct rec KeyType key;ElemType data;typedef rec sqlistM;class guibing public:guibing(sqlist b)for(int i=0;iM;i+)ri=bi;名师资料总结-精品资料欢
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年分治法实现归并排序算法算法设计与分析实验报告 2022 年分 实现 归并 排序 算法 设计 分析 实验 报告
限制150内