求最大公共序列.doc

求最大公共序列.doc

ID:55566231

大小:28.00 KB

页数:4页

时间:2020-05-18

求最大公共序列.doc_第1页
求最大公共序列.doc_第2页
求最大公共序列.doc_第3页
求最大公共序列.doc_第4页
资源描述:

《求最大公共序列.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、求最大公共子序列一.实验目的1.掌握动态规划法的设计思想并能熟练运用2.强化动手编程的能力二.实验内容用动态规划法求两个序列的最大公共子序列三.算法思想1.分析可得如下动态规划函数:①L[0][0]=L[i][0]=L[0][j]=0(1<=i<=m,1<=j<=n)②L[i][j]=L[i-1][j-1]+1(Xi=Yi,I>1,j>1);或者max{L[i][j-1],L[i-1][j]}(Xi!=Yi,i>1,j>1)2.由此函数,把序列X={x1,x2….xm}和Y={y1,y2…ym}的最长公共子序列的搜索分为M个阶段,第1阶段,按照式1计算X1和Yj的最长公共子序列长度L[1][j

2、](1<=j<=n),第2阶段,按照2式计算X2和Yj的最长公共子序列长度L[2][j](1<=j<=n),以此类推,最后在第M阶段,计算Xm和Yj的最长公共子序列长度L[m][j](1<=j<=n),则L[m][n]就是序列Xm和Yn的最长公共子序列的长度。运行结果:附:源代码:#includeusingnamespacestd;voidlsc(chara[],intla,charb[],intlb);voidmain(){chara[20];charb[20];inti=0;intnum=0;charc;a[0]='';i=1;cout<<"请输入字符串a:"<

3、l;do{c=cin.get();if(c=='')break;if(c!='')a[i++]=c;}while(i<20);intlen1=i;i=1;cout<<"请输入字符串b:"<

4、;}for(i=0;i=0&&j>=0)

5、{if(m[i][j]==max){if(a[i]==b[j]){output[no]=a[i];no++;i--;j--;max--;}else{if(m[i-1][j]=0;i--)cout<

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

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

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