第三次最长公共子序列.doc

上传人:11****ws 文档编号:3217214 上传时间:2019-05-26 格式:DOC 页数:3 大小:37KB
下载 相关 举报
第三次最长公共子序列.doc_第1页
第1页 / 共3页
第三次最长公共子序列.doc_第2页
第2页 / 共3页
第三次最长公共子序列.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、实验三 动态规划算法一、实验目的与要求1、熟悉最长公共子序列问题的算法;2、初步掌握动态规划算法;二、实验题若给定序列 X=x1,x2,xm,则另一序列 Z=z1,z2,zk,是 X 的子序列是指存在一个严格递增下标序列i1,i2,ik使得对于所有 j=1,2,k 有:zj=xij 。例如,序列Z=B, C,D,B 是序列 X=A,B,C,B ,D ,A,B的子序列,相应的递增下标序列为2,3,5,7。给定 2 个序列 X 和 Y,当另一序列 Z 既是 X 的子序列又是 Y 的子序列时,称 Z 是序列 X和 Y 的公共子序列。给定 2 个序列 X=x1,x2,xm和 Y=y1,y2,yn,找出

2、 X 和 Y 的最长公共子序列。 三、实验步骤程序代码:package unit1;public class LCS public static void main(String args) char x = ,A,B,C,B,D,A,B;char y = ,B,D,C,A,B,A;int b = new intx.lengthy.length;int c = new intx.lengthy.length;lcs(x,y,b,c);lcs_put(x.length-1,y.length-1,x,b);static int lcs(char x,char y,int b,int c)int i

3、,j;int m = x.length - 1;int n = y.length - 1; for(i = 1;i = cij-1)cij = ci-1j;bij = 2;elsecij = cij-1;bij = 3;return cmn;static void lcs_put(int i,int j,char x,int b)if(i = 0 | j = 0 )return;if(bij = 1)lcs_put(i-1,j-1,x,b);System.out.print(xi + “ “ ); else if(bij = 2)lcs_put(i-1,j,x,b);elselcs_put(i,j-1,x,b);四、实验运行结果五、实验心得体会在做本次试验之前,自己对动态规划法不是非常的理解,后来结合课本看了利用动态规划法求最长公共子序列的基本步骤和具体例子之后,自己基本上掌握了动态规划法的基本原理,课本上所列举的利用动态规划法最长公共子序列的代码很简单,懂得规划法解最长公共子序列的基本原理之后吗,结合课本所提供的相关代码编码完成本次试验内容也是很容易,实现起来也很顺利。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。