算法设计与分析的实验报告 2

算法设计与分析的实验报告 2

ID:37780268

大小:218.00 KB

页数:15页

时间:2019-05-31

算法设计与分析的实验报告 2_第1页
算法设计与分析的实验报告 2_第2页
算法设计与分析的实验报告 2_第3页
算法设计与分析的实验报告 2_第4页
算法设计与分析的实验报告 2_第5页
资源描述:

《算法设计与分析的实验报告 2》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验一递归与分治策略1.实验内容:1)Hanoi塔问题2)Strassen矩阵乘法3)合并排序(MergeSort)4)快速排序(QuickSort)汉诺塔:代码:packagetowers;publicclassPai{publicstaticvoidmain(String[]args){towers(4,'A','B','C');}publicstaticvoidtowers(intn,charfrompeg,chartopeg,charauxpeg){if(n==1){System.out.println("mov

2、edisk1frompeg"+frompeg+"topeg"+topeg);return;}towers(n-1,frompeg,auxpeg,topeg);System.out.println("movedisk"+n+"frompeg"+frompeg+"topeg"+topeg);towers(n-1,auxpeg,topeg,frompeg);}}运行结果:(2)矩阵相乘:代码:packagehelp;importjava.io.*;importjava.util.*;classmatrix//定义矩阵结构{pu

3、blicint[][]m=newint[10][10];}publicclassStrassen{publicintIfIsEven(intn)//判断输入矩阵阶数是否为2^k{inta=0,temp=n;while(temp%2==0){if(temp%2==0)temp/=2;elsea=1;}if(temp==1)a=0;returna;}publicvoidDivide(matrixd,matrixd11,matrixd12,matrixd21,matrixd22,intn)//分解矩阵{inti,j;for(i

4、=1;i<=n;i++)for(j=1;j<=n;j++){d11.m[i][j]=d.m[i][j];d12.m[i][j]=d.m[i][j+n];d21.m[i][j]=d.m[i+n][j];d22.m[i][j]=d.m[i+n][j+n];}}publicmatrixMerge(matrixa11,matrixa12,matrixa21,matrixa22,intn)//合并矩阵{inti,j;matrixa=newmatrix();for(i=1;i<=n;i++)for(j=1;j<=n;j++){a.m

5、[i][j]=a11.m[i][j];a.m[i][j+n]=a12.m[i][j];a.m[i+n][j]=a21.m[i][j];a.m[i+n][j+n]=a22.m[i][j];}returna;}publicmatrixTwoMatrixMultiply(matrixx,matrixy)//阶数为2的矩阵乘法{intm1,m2,m3,m4,m5,m6,m7;matrixz=newmatrix();m1=(y.m[1][2]-y.m[2][2])*x.m[1][1];m2=y.m[2][2]*(x.m[1][1]

6、+x.m[1][2]);m3=(x.m[2][1]+x.m[2][2])*y.m[1][1];m4=x.m[2][2]*(y.m[2][1]-y.m[1][1]);m5=(x.m[1][1]+x.m[2][2])*(y.m[1][1]+y.m[2][2]);m6=(x.m[1][2]-x.m[2][2])*(y.m[2][1]+y.m[2][2]);m7=(x.m[1][1]-x.m[2][1])*(y.m[1][1]+y.m[1][2]);z.m[1][1]=m5+m4-m2+m6;z.m[1][2]=m1+m2;z.

7、m[2][1]=m3+m4;z.m[2][2]=m5+m1-m3-m7;returnz;}publicmatrixMatrixPlus(matrixf,matrixg,intn)//矩阵加法{inti,j;matrixh=newmatrix();for(i=1;i<=n;i++)for(j=1;j<=n;j++)h.m[i][j]=f.m[i][j]+g.m[i][j];returnh;}publicmatrixMatrixMinus(matrixf,matrixg,intn)//矩阵减法方法{inti,j;matrix

8、h=newmatrix();for(i=1;i<=n;i++)for(j=1;j<=n;j++)h.m[i][j]=f.m[i][j]-g.m[i][j];returnh;}publicmatrixMatrixMultiply(matrixa,matrixb,intn)//矩阵乘法方法{intk;matrixa11,

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

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

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