算法设计及分析实验报告-模板.doc
《算法设计及分析实验报告-模板.doc》由会员分享,可在线阅读,更多相关《算法设计及分析实验报告-模板.doc(10页珍藏版)》请在课桌文档上搜索。
1、-实验报告(2016/2017学年 第一学期)课程名称算法分析与设计实验名称分治策略实验时间年月日指导单位指导教师学生班级学院(系)专 业. z.-实 验 报 告实验名称分治策略指导教师实验类型验证实验学时2实验时间一、 实验目的和任务1.理解分治法的算法思想,阅读实现书上已有的部分程序代码并完善程序,加深对分治法的算法原理及实现过程的理解。 2.用分治法实现一组无序序列的两路合并排序和快速排序。要求清楚合并排序及快速排序的基本原理,编程实现分别用这两种方法将输入的一组无序序列排序为有序序列后输出。 二、 实验环境(实验设备)算法设计与分析课本笔记本电脑 VC+6.0三、实验原理及容(包括操作
2、过程、结果分析等)实验原理运用分治法 :无序-部分有序-整体有序归并排序中分”与合”的过程是结合在一起的,即每一趟都在做分” 与合”的工作,并不是先分”完再合” 基本程序(一) 两路合并排序#includeclass SortableListpublic:SortableList(int mSize) /构造函数ma*Size = mSize;l = new intma*Size;n = 0;SortableList()deletel; /析构函数void Input();void Merge(int left,int mid,int right);void MergeSort();void
3、MergeSort(int left,int right);void Output();private:int *l; /动态生成一维数组int ma*Size; /线性表的最大表长int n; /线性表的实际长度;void SortableList:Input()for(int i = 0;ili;n+;void SortableList:Merge(int left,int mid,int right)int *temp = new intright-left+1;int i = left,j = mid +1,k = 0;while(i=mid)&(j=right)if(li=lj)te
4、mpk+=li+;elsetempk+=lj+;while(i=mid)tempk+=li+;while(j=right)tempk+=lj+;for(i = 0,k=left;k=right;)lk+=tempi+;void SortableList:MergeSort()MergeSort(0,n-1);void SortableList:MergeSort(int left,int right)if(leftright)/若序列的长度超过1,则划分成两个子序列int mid = (left+right)/2;/将待排序的序列一分为二MergeSort(left,mid);/对左序列排序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 设计 分析 实验 报告 模板
链接地址:https://www.desk33.com/p-8075.html