资源简介
关于动态规划算法的最长公共子序列的Java代码,帮助了解算法实现过程

代码片段和文件信息
package 最长公共子序列;
public class LCS {
public static void main(String[] args) {
//↖←↑
String [] X={“A““B““C““B““D““A““B“};
String [] Y={“B““D““C““A““B““A“};
LCS(XYX.lengthY.length);
}
public static void LCS(String []XString []Yint mint n)
{
int[][]C=new int [m+1][n+1];
String[][]B=new String [m+1][n+1];
for(int i=0;i<=m;i++)
{
C[i][0]=0;
}
for(int i=0;i<=n;i++)
{
C[0][i]=0;
}
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
if(X[i-1]==Y[j-1]){
C[i][j]=C[i-1][j-1]+1;
B[i][j]=“↖“;
}
else if(C[i-1][j]>=C[i][j-1]){
C[i][j]=C[i-1][j];
B[i][j]=“↑“;
}
else
{
C[i][j]=C[i][j-1];
B[i][j]=“←“;
}
}
}
//测试
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
System.out.print(C[i][j]+““+“B[“+i+“][“+j+“]=“+B[i][j]+“\t“);
}
System.out.println();
}
StructureSequence(BXmn);
}
public static void StructureSequence(String [][]BString[] Xint iint j){
if(i==0||j==0){
return;
}
if(B[i][j]==“↖“){
System.out.println(X[i-1]);
StructureSequence(BXi-1j-1);
}
else if(B[i][j]==“↑“){
StructureSequence(BXi-1j);
}
else{
StructureSequence(BXij-1);
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1802 2017-11-18 15:16 LCS.java
----------- --------- ---------- ----- ----
1802 1
相关资源
- 三角网构TIN生成算法,Java语言实现
- 推荐算法的JAVA实现
- 回归算法Java程序
- java实现的搜索引擎
- C#和Java实现互通的RSADES加解密算法
- java国密算法SM4加密.zip
- java算法大全含源码包
- 算法设计、分析与实现从入门到精通
- DES加密解密算法论文
- 华科密码学课设之SPN的差分攻击以及
- RSA数字签名算法的具体实现
- 银行家算法的java代码实现,Swing写的
- 大宝CA版本的国密算法DoubleCA-JCE实现,
- Java基于双向链表实现双端队列结构(
- 国密版本的SSL库
- RSA算法JAVA公钥加密,C#私钥解密
- aes加密算法 五种模式
- 论文研究 - 使用混合密码算法的端到
- des加密算法实现任意文件加解密
- Java模拟操作系统实验之四种进程调度
- 银行家算法JAVA代码实现,附带图形化
- HDP java代码,非参数主题模型学习算法
- EM算法java实现
- 数据结构与算法分析Java语言描述-英文
- SM2 SM3 SM4国密算法JAVA与JS实现版本
- N后问题 算法课设Java代码和报告
- 2017-广东工业大学操作系统课程设计银
- 数据结构与算法:C#语言描述(中,英
- Java编写的k-means文本聚类算法
- 计算机网络课程设计报告_DH算法_Wir
评论
共有 条评论