算法分析三个实验(分治/动归/回溯).doc

算法分析三个实验(分治/动归/回溯).doc

ID:59421913

大小:74.50 KB

页数:6页

时间:2020-05-26

算法分析三个实验(分治/动归/回溯).doc_第1页
算法分析三个实验(分治/动归/回溯).doc_第2页
算法分析三个实验(分治/动归/回溯).doc_第3页
算法分析三个实验(分治/动归/回溯).doc_第4页
算法分析三个实验(分治/动归/回溯).doc_第5页
资源描述:

《算法分析三个实验(分治/动归/回溯).doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、算法分析三个实验(分治/动归/回溯)I'm段凯越、人特别感谢郭鹏老师和蔡润身老师的耐心指导和帮助/***********************分治法_最近对问题*********************/#include#include#include#includebruteforce(x[],y[])/蛮力法{m=;n=0;k=;min;doubletemp[45];min=((x[]・x[])*(x[]-x[])+(y[

2、]-y[])*(y[]-y[]));for(i=();iv=8;i++)(j=;jv=-i;j++){temp[k]=sqr((x[i]-x[i+j])*(x[i]-x[i+j])+(y[i].y[i+j])*(y[i].y[i+j]));if(temp[k]

3、blex[],doubley[],intm,intn)〃冒泡排序{temp;intij;(i=m;iv=n_;i++)(j=i;jv=n;j++)(x[i]>x[j]){temp=x[i];x[i]=x[j];x

4、j]=temp;temp=y[i];y[i]=y[j];y[j]=temp;}doubledist(doublexl,doubleyl,doublex2,doubley2)〃计算距离{rsqrt((xl-x2)*(xl・x2)+(yl-y2)*(yl-y2));}getmin(x,y),求最近

5、距离{if(xvy)X;elsey;}divideconquer(x[],y[]?start,end)〃分治法{intij,mid;(start==end)199999.(;(start==end-)dist(x[start],y[start],x[end],y[end]);if(start==end-2)returngetmin(getmin(dist(x[start],y[start],x[start+],y[start+]),dist(x[start+],y[start+],x[start+2],

6、y[start+])),dist(x[start],y[start],x[start+],y[start+]));mid=(start+end)/2;doublecurmin=getmin(divideconquer(x,y,start,mid),divideconquer(x,y,mid+,end));fb(i=start;iv=end;i++)(j=i+;jv=i+&&jv=end;j++){curmin=getmin(curmin,dist(x[i],y[i],x[j],y[j]));curmin

7、;main()W;doublex[10];//P0-±I;0Edoubley[lC'];//0>0-±I"OEsrand(timc(CI));(r=0;r<=9;r-H-){x[r]=()%;printf(Mn);(r=0;rv=9;r++){y[r]=ran()%;printf(”%.01f”,y[r]);}printfCn);bruteft)rce(x,y);sort(x,y,0,9);result=divideconquer(x,y,,);printf(n分治法:最短距离是%.51fW,

8、result);return0;/*********************动)态莉J戈lj一利J#includestd:XdivideMaxSum(a[],myleft,myright){rights,lefts,ij,rightsum,leftsum,sl?s2,b,center;sum=;(myleft==myright){(a[myleft]>)sum=a[myleft];elsesum=;}else(center=(myleft+myright)/;leftsum=di

9、videMaxSum(a,myleft,center);rightsum=divideMaxSum(a,center+,myright);sl=O;lefts=O;(i=center;i>=myleft;i—)(lefts+=a[i];(lefts>sl)sl=lefts;)s2=0;rights=0;(j=center+;jv=myright;j++){rights+=a

10、j];(rights>s2)s2=rights;}sum=sl+s

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

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

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