ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:17.76KB ,
资源ID:11711111      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11711111.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(递归与分治实验报告.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

递归与分治实验报告.docx

1、递归与分治实验报告竭诚为您提供优质文档/双击可除递归与分治实验报告篇一:实验一递归与分治算法编程-实验报告纸南京信息工程大学实验(实习)报告实验(实习)名称递归与分治算法编程实验(实习)日期得分指导教师院专业年级班次姓名学号1实验目的:1)掌握递归与分治策略的基本思想2)掌握递归算法在阶乘函数、Ackerman函数、整数划分等问题上的应用3)掌握二分查找、合并排序、快速排序等问题的分治算法实现4)熟悉myeclipse或eclipse等Java开发工具的使用。2实验内容:1)采用myeclipse或eclipse编程实现基于分治策略的二分查找算法。2)采用myeclipse或eclipse编程

2、实现基于分治策略的合并排序算法。3)采用myeclipse或eclipse编程实现基于分治策略的合并排序算法。3实验步骤二分查找publicclasssortingpublicstaticintbinarysearch(inta,intx,intn)intleft=0;intright=n-1;while(leftintmiddle=(left+right)/2;if(x=amiddle)returnmiddle;if(xamiddle)left=middle+1;elseright=middle-1;return-1;publicstaticvoidmain(stringargs)intx,

3、n;inta=1,3,4,5,6,13,25;x=6;n=7;ints;s=binarysearch(a,x,n);system.out.println(s);合并排序publicclassmergesortpublicstaticvoidmergesort(inta)publicstaticvoidmergepass(intx,inty,ints)publicstaticvoidmerge(intc,intd,intl,intm,intr)inti=1,j=m+1,k=1;inti=0;while(iif(ci-(cj)m)for(intq=j;q快速排序publicclassQsortpr

4、ivatestaticvoidqsort(inta,intp,intr)privatestaticintpartition(inta,intp,intr)inti=p;intj=r+1;intx=ap;inttemp;while(true)while(a+i-x)0);if(i=j)break;temp=ai;if(paj=temp;mymath.swap(a,i,j);/ap=aj;aj=x;returnj;publicstaticvoidmain(stringargs)inta=4,2,7,9,1;qsort(a,0,4);for(inti=0;i+)system.out.println(

5、ai);4实验分析和总结掌握了递归与分治策略的基本思想掌握了递归算法在阶乘函数、Ackerman函数、整数划分等问题上的应用掌握了二分查找、合并排序、快速排序等问题的分治算法实现熟悉了myeclipse或eclipse等Java开发工具的使用。篇二:递归与分治实验报告递归与分治实验报告班级:计科1102姓名:赵春晓学号:20XX31020XX31实验目的:进一步掌握递归与分治算法的设计思想,通过实际问题来应用递归与分治设计算法。实际问题:1集合划分问题,2输油管道问题,3邮局选址问题,4整数因子分解问题,5众数问题。问题1:集合划分算法思想:对于n个元素的集合,可以划分为由m个子集构成的集合,

6、例如1,23,4就是由2个子集构成的非空子集。假设f(n,m)表示将n个元素划分成由m个子集构成的集合的个数。那么1)若m=1,则f(n,m)=1;2)若n=m,则f(n,m)=1;3)若不是上面两种情况则有下面两种情况构成:3.1)向n-1个元素划分成的m个集合里面添加一个新的元素,则有m*f(n-1,m)种方法;3.2)向n-1个元素划分成的m-1个集合里添加一个由一个元素形成的独立的集合,则有f(n-1,m-1)种方法。实验代码:#include#includeusingnamespacestd;intjihehuafen(intn,intm)if(m=1|n=m)return1;els

7、ereturnjihehuafen(n-1,m-1)+m*jihehuafen(n-1,m);intmain()ifstreamfin(c:/input.txt);ofstreamfout(c:/output.txt);intn,m,num;finnm;num=jihehuafen(n,m);foutreturn0;问题2:输油管道算法思想:由于主管道由东向西铺设。故主管道的铺设位置只和各油井的y坐标有关。要使主管道的y坐标最小,主管道的位置y坐标应是各个油井y坐标的中位数。先用快速排序法把各个油井的y坐标排序,然后取其中位数再计算各个油井y坐标与中位数差值的绝对值之和。实验代码:#inclu

8、de#include#includeusingnamespacestd;structpoint/定义坐标结构体intx;inty;/快速排序voidsort(pointa,intsize)inti=0,j=size-1;inttemp;/用来保存作为基准的数if(size=1)temp=a0.y;/用区间的第一个元素作为基准while(i!=j)/区间两端交替向中间扫描,知道i=jwhile(iai.y=aj.y;i+;while(iaj.y=ai.y;j-;ai.y=temp;sort(a,i);/对左递归sort(a+i+1,size-i-1);/对右递归/取中位数intmadian(po

9、int*a,intsize)intnum=size+1;returnanum/2-1.y;/returnsize%2?asize1.y:(asize1.y+a(size1)+1.y)1;/计算最短路程intlucheng(point*a,intsize)intmid=madian(a,size);inti,sum=0;for(i=0;isum+=abs(ai.y-mid);returnsum;intmain()ifstreamfin(c:/input.txt);ofstreamfout(c:/output.txt);intn;finn;point*p=newpointn;for(inti=0;

10、ifinpi.xpi.y;sort(p,n);intminlen=lucheng(p,n);foutreturn0;问题3:邮局选址问题算法思想:同问题2实验代码:#include#include#includeusingnamespacestd;structpointintx;inty;voidsort_x(point*a,intsize)inttemp;inti=0,j=size-1;if(size=1)temp=a0.x;/while(i!=(:递归与分治实验报告)j)while(iif(iai.x=aj.x;i+;while(iif(iaj.x=ai.x;j-;ai.x=temp;so

11、rt_x(a,i);/sort_x(a+i+1,size-i-1);/voidsort_y(point*a,intsize)inttemp;inti=0,j=size-1;if(size=1)temp=a0.y;/while(iwhile(iif(iai.y=aj.y;i+;while(iif(iaj.y=ai.y;j-;ai.y=temp;sort_y(a,i);/sort_y(a+i+1,size-i-1);/intmadian_x(point*a,intsize)/intnum=size+1;/returnanum/2-1.x;returnsize%2?asize1.x:(asize1.

12、x+a(size1)+1.x)1;intmadian_y(point*a,intsize)intnum=size+1;returnanum/2-1.y;/returnsize%2?asize1.y:(asize1.y+a(size1)+1.y)1;intlucheng(point*a,intsize)篇三:递归与分治算法编程-实验报告南京信息工程大学实验(实习)报告实验名称递归与分治算法编程实验日期5.14得分指导教师刘文杰院计软专业软件工程年级二班次一姓名陈忠阳学号20XX13440121实验目的:1)掌握递归与分治策略的基本思想2)掌握递归算法在阶乘函数、Ackerman函数、整数划分等问

13、题上的应用3)掌握二分查找、合并排序、快速排序等问题的分治算法实现4)熟悉myeclipse或eclipse等Java开发工具的使用。2实验内容:1)采用myeclipse或eclipse编程实现基于分治策略的二分查找算法。2)采用myeclipse或eclipse编程实现基于分治策略的合并排序算法。3)采用myeclipse或eclipse编程实现基于分治策略的快速排序算法。3实验步骤1:二分搜索packagepackage;publicclasssuanfapublicstaticintbinarysearch(inta,intx,intn)intleft=0;intright=n-1;w

14、hile(leftintmiddle=(left+right)/2;if(x=amiddle)returnmiddle;if(xamiddle)returnmiddle+1;elseright=middle+1;return-1;publicstaticvoidmain(stringargs)intaa=newint1,3,5,7,9,11,13,15,17,19;suanfamain=newsuanfa();system.out.println(aatheresultis:+main.binarysearch(aa,9,10);2:合并排序算法packagep1;importjava.uti

15、l.Arrays;publicclassguyprivatestaticvoidmergesort(intarray,intstart,intend,inttempArray)if(endreturn;intmiddle=(start+end)/2;mergesort(array,start,middle,tempArray);mergesort(array,middle+1,end,tempArray);intk=0,leftIndex=0,rightIndex=end-start;system.arraycopy(array,start,tempArray,0,middle-start+1

16、);for(inti=0;itempArrayend-start-i=arraymiddle+i+1;while(kif(tempArrayrightIndextempArrayleftIndex)/从小到大arrayk+start=tempArrayleftIndex+;elsearrayk+start=tempArrayrightIndex-;k+;publicstaticvoidmain(stringargs)intarray=newint11,213,134,65,77,78,23,43;mergesort(array,0,array.length-1,newintarray.leng

17、th);system.out.println(Arrays.tostring(array);3:packagep1;publicclassQuicksortpublicstaticvoidmain(stringargs)intarray=49,38,65,97,76,13,27;quicksort(array,0,array.length-1);for(inti=0;isystem.out.println(arrayi);publicstaticvoidquicksort(intn,intleft,intright)intpivot;if(leftpivot=partition(n,left,right);quicksort(n,left,pivot-1);quicksort(n,pivot+1,right);publicstaticintpartition(intn,intleft,intright)intpivotkey=nleft;while(leftwhile(leftnleft=nright;while(leftnright=nleft;nleft=pivotkey;returnleft;4实验分析和总结通过这次实验,使我掌握了基于分治策略的二分查找算法,合并排序算法,快速排序算法。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1