资源简介
关于动态规划算法的最长公共子序列的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
相关资源
- 利用JAVA和Floyd算法实现上海地铁最短
- 算法中作业车间调度jsp测试 FT06 FT1
- KNN人工智能机器学习算法JAVA实现
- Java版移动臂调度算法4种
- java实现的ID3决策树算法改良版
- java+GUI界面各种排序算法性能比较
- 操作系统课程设计_时间片轮转调度算
- java遗传算法_求TSP,java界面版
- 股票K线指标算法整理Java封装工具类,
- 祖冲之密码算法Java实现
- AES算法Java实现
- java算法为蓝桥杯做准备
- 基于java的八数码DFS搜索算法以及界面
- 实验4 DV LS路由算法编程实验报告含代
- 多边形扫描线算法
- python版DES和MAC算法源码
- 128位AES加密算法C语言实现
- 计算机组成原理(BOOTH算法)java源代
- Delphi与JAVA互加解密AES算法
- 大气模型算法气体污染扩散模型
- 一个简单的lz78压缩算法
- ai五子棋,五元组算法
- java 排序算法可视化
- java实现的决策树算法
- 算法4谢路云源码之ThreeSumFast
- 算法4谢路云源码之ThreeSum
- SHA-256加密算法JAVA
- 存储管理——动态分区分配算法
- java排课算法核心代码及思想
- ASP HMAC_SHA256 HS256算法 基于JAVASCIRPT R
评论
共有 条评论