博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个粗糙的打印两序列所有最大公共子序列的方法
阅读量:6757 次
发布时间:2019-06-26

本文共 2138 字,大约阅读时间需要 7 分钟。

以下是典型动态算法打印两序列最大公共子序列的方法,该方法只能打印一个最大公共子序列:

1 #include 
2 using std::cout; 3 using std::endl; 4 5 const int NUM1=30,NUM2=30; 6 char result[NUM1+1]; 7 int count=0; 8 int lcsLength(char x[], char y[], int b[][NUM2+1],int m,int n) 9 {10 int c[NUM1+1][NUM2+1];11 for (int i = 0; i<=m; i++) 12 c[i][0]=0;13 for (int i = 0; i<=n; i++ ) 14 c[0][i]=0;15 for (int i = 1; i <= m; i++) 16 {17 for (int j = 1; j <= n; j++) 18 {19 if (x[i - 1]==y[j - 1])20 {21 c[i][j]=c[i-1][j-1]+1; 22 b[i][j]=1;23 }24 else 25 if (c[i-1][j]>c[i][j-1]) 26 {27 c[i][j]=c[i-1][j]; 28 b[i][j]=2;29 }30 else 31 {32 c[i][j]=c[i][j-1]; 33 b[i][j]=3;34 }35 }36 }37 return c[m][n];38 }39 40 void lcs(int i,int j, char x[], int b[][NUM2+1] ) 41 {42 if (i ==0 || j==0) 43 return;44 45 if(b[i][j]== 1) 46 { 47 lcs(i-1, j-1, x, b);48 cout<

只考虑最终的最优解,而不输出所有最优解或许是动态算法的很大的缺点。就这个问题,下面是一个粗糙的打印两序列所有最大公共子序列的方法:

1 #include 
2 using std::cout; 3 using std::endl; 4 5 const int NUM1=30,NUM2=30; 6 char result[NUM1+1]; 7 int count=0; 8 int lcsLength(char x[], char y[], int b[][NUM2+1],int m,int n) 9 {10 int c[NUM1+1][NUM2+1];11 for (int i = 0; i<=m; i++) 12 c[i][0]=0;13 for (int i = 0; i<=n; i++ ) 14 c[0][i]=0;15 for (int i = 1; i <= m; i++) 16 {17 for (int j = 1; j <= n; j++) 18 {19 if (x[i - 1]==y[j - 1])20 {21 c[i][j]=c[i-1][j-1]+1; 22 b[i][j]=1;23 }24 else 25 if (c[i-1][j]>c[i][j-1]) 26 {27 c[i][j]=c[i-1][j]; 28 b[i][j]=2;29 }30 else 31 if(c[i-1][j]

转载于:https://www.cnblogs.com/kevinGaoblog/archive/2012/05/09/2491525.html

你可能感兴趣的文章
CentOS 7安装WordPress
查看>>
mybatis的jdbcType和javaType、oracle,MySQL的对应类型
查看>>
openxml in sql server
查看>>
Relational Algebra 关系代数
查看>>
node的http请求
查看>>
蓝牙Profile的概念和常见种类(转)
查看>>
Kafka 配置
查看>>
Ddr2,ddr3,ddr4内存条的读写速率
查看>>
MySQL 索引与查询优化
查看>>
static final常量变量的正确书写规范
查看>>
vue项目关闭eslint检查
查看>>
微服务技术栈
查看>>
NPOI workbook.RemoveSheetAt(0); 删除sheet页 次序 sheettmpRequire.CopySheet("Require", true);...
查看>>
Go标准库:深入剖析Go template
查看>>
ant design pro (四)新增页面
查看>>
uni - 使用npm
查看>>
ASP.NET Core多语言 (转载)
查看>>
java中比较两个double类型值的大小
查看>>
golang ----gc问题
查看>>
WPF去除边框的方法
查看>>