


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验4 分治算法设计技术的应用一、算法设计技术当我们求解某些问题时,由于这些问题要处理的数据相当多,或求解过程相当复杂,使得直接求解法在时间上相当长,或者根本无法直接求出。对于这类问题,我们往往先把它分解成几个子问题,找到求出这几个子问题的解法后,再找到合适的方法,把它们组合成求整个问题的解法。如果这些子问题还较大,难以解决,可以再把它们分成几个更小的子问题,以此类推,直至可以直接求出解为止。这就是分治策略的基本思想。下面通过实例加以说明。【例】在n个元素中找出最大元素和最小元素。我们可以把这n个元素放在一个数组中,用直接比较法求出。算法如下:void maxmin1(int A,int n,int *max,int *min) int i; *min=*max=A0; for(i=2;i *max) *max= Ai; if(Ai *min) *min= Ai; 上面这个算法需比较2(n-1)次。能否找到更好的算法呢?我们用分治策略来讨论。把n个元素分成两组:A1=A1,.,Aint(n/2)和A2=Aint(N/2)+1,.,AN分别求这两组的最大值和最小值,然后分别将这两组的最大值和最小值相比较,求出全部元素的最大值和最小值。如果A1和A2中的元素多于两个,则再用上述方法各分为两个子集。直至子集中元素至多两个元素为止。例如有下面一组元素:-13,13,9,-5,7,23,0,15。用分治策略比较的过程如下:图中每个方框中,左边是最小值,右边是最大值。从图中看出,用这种方法一共比较了10次,比直接比较法的14次减少4次,即约减少了1/3。算法如下: void maxmin2(int A,int i,int j,int *max,int *min)/*A存放输入的数据,i,j存放数据的范围,初值为0,n-1,*max,int *min 存放最大和最小值*/ int mid,max1,max2,min1,min2; if (j=i) 最大和最小值为同一个数;return; if (j-1=i) 将两个数直接比较,求得最大会最小值;return; mid=(i+j)/2; 求imid之间的最大最小值分别为max1,min1;求mid+1j之间的最大最小值分别为max2,min2; 比较max1和max2,大的就是最大值;比较min1和min2,小的就是最小值; 利用分治策略求解时,所需时间取决于分解后子问题的个数、子问题的规模大小等因素,而二分法,由于其划分的简单和均匀的特点,是经常采用的一种有效的方法,例如二分法检索。运用分治策略解决的问题一般来说具有以下特点:1、原问题可以分解为多个子问题,这些子问题与原问题相比,只是问题的规模有所降低,其结构和求解方法与原问题相同或相似。2、原问题在分解过程中,递归地求解子问题,由于递归都必须有一个终止条件,因此,当分解后的子问题规模足够小时,应能够直接求解。3、在求解并得到各个子问题的解后,应能够采用某种方式、方法合并或构造出原问题的解。不难发现,在分治策略中,由于子问题与原问题在结构和解法是的相似性,用分治方法解决的问题,大都采用了递归的形式。在各种排序方法中,如归并排序、堆排序、快速排序等,都存在有分治的思想。二、实验题目1设计程序利用分治策略求n个数的最大值和最小值。2利用分治策略,在n个不同元素中找出第k个最小元素。三、实验要求1该实验的课内学时是4个课时。四、实验的提示1实验题目2的提示把n个元素放在顺序表中,然后取第k个元素作为标准m,把n个元素重新排列,分成两个区间:小于标准m的元素区间1j,大于标准m的元素区间j+1n,接下来有三种情况:1)j=k,则找到第k个元素。2)jk,则第k个元素在区间1j。在情况2和3中继续寻找。五、实验说明1互相之间可以进行算法的讨论,但文档以及程序每个人必须独立完成,如果发现雷同,则重做。2认真准备,实验前做好准备工作,准备工作包括完成实验报告中的(1)(5)的部分,实验报告中(6)(7)部分在实验结束后继续填写。3程序要上机调试成功并形成可执行的程序,记录调试过程中出现的错误现象以及如果改正4程序的运行结果要结合程序测试数据进行分析。5提交实验报告(实验报告的格式见附录B)和源程序以及可以运行的程序。六、实验报告内容(1)实验题目(2)实验设计的数据结构及说明(3)用层次图描述程序结构,并说明程序各函数的名称、功能,图示各函数之间相互的调用关系。(4)各个函数的设计及说明(5)测试数据的设计及预期结果(6)调试过程记录:在程序调试过程中可能会出现许多问题,对这些问题要逐个记录错误位置、编译的描述(英文以及中文的含义)、如何解决。(7)实验结果记录以及与预期结果比较以及分析:在实验过程中除非一次成功,否则会有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025沧州海兴县招聘社区工作者27名考前自测高频考点模拟试题及答案详解1套
- 2025年湖南省各市州湘能农电服务有限公司联合招聘780人考前自测高频考点模拟试题及1套参考答案详解
- 2025广西百色市平果市道路运输发展中心城镇公益性岗位人员招聘1人模拟试卷及1套完整答案详解
- 2025年上半年临沂市公安机关招录警务辅助人员(72名)考前自测高频考点模拟试题参考答案详解
- 2025辽宁沈阳副食集团所属子公司拟聘用人员模拟试卷及完整答案详解1套
- 2025黑龙江黑河市漠河市公益性岗位招聘18名考前自测高频考点模拟试题附答案详解(突破训练)
- 委托转供电协议简单版样书7篇
- 2025河南郑州市第六人民医院招聘高层次人才考前自测高频考点模拟试题完整答案详解
- 2025黑龙江哈尔滨工程大学智能科学与工程学院岗位招聘4人考前自测高频考点模拟试题及答案详解(全优)
- 2025年显示仪表项目建议书
- 死因监测及肿瘤随课件
- 北京故宫研学旅行方案设计
- 燃气设备安装调试方案
- 2025年二外小升初真题卷及答案
- 术后鼻出血处理课件
- 2025年乡村医生考试试题及答案
- 污水井钢板桩支护施工及基坑土方开挖专项方案
- 法院起诉收款账户确认书范本
- 一道美丽的风景作文500字
- 食堂菜品出品管理方案
- 中国历史时期疆域变迁
评论
0/150
提交评论