首页 >> 知识经验 > 百科知识 >

求最长公共子序列算法(求最长公共子序列(动态规划))

2024-09-15 05:30:59 来源: 用户: 

哈喽,大家好~~~我是小编田甜,关于求最长公共子序列算法,求最长公共子序列(动态规划)这个很多人还不知道,那么现在让田甜带着大家一起来看看吧!

1、// 求LCS的长度class LCS{public: LCS(int nx, int ny, char *x, char*y); //创建二维数组c、s和一维数组a、b。

2、并进行初始化 void LCSLength(); //求最优解值(最长公共子序列长度) void CLCS(); //构造最优解(最长公共子序列) ……private: void CLCS(int i, int j); int **c, **s.m, n; char *a, *b;};int LCS::LCSLength() { for(int i=1; i<=m; i++) c[i][0]=0; for(i=1; i<=n; i++) c[0][i]=0; for (i=1; i<=m; i++) for (int j=1; j<=n; j++) if (x[i]==y[j]){ c[i][j]=c[i-1][j-1]+1; s[i][j]=1; //由c[i-1][j-1]计算c[i][j] } else if (c[i-1][j]>=c[i][j-1]){ c[i][j]=c[i-1][j]; s[i][j]=2; //由c[i-1][j]得到c[i][j] } else { c[i][j]=c[i][j-1]; s[i][j]=3; //由c[i][j-1]得到c[i][j] } return c[m][n]; //返回最优解值} // 构造最长公共子序列void LCS::CLCS(int i, int j){ if (i==0||j==0) return; if (s[i][j]==1){ CLCS(i-1, j-1); cout<

本文分享完毕,希望对大家有所帮助哦。

  免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!

 
分享:
最新文章
  • 【经典句子大全】在日常生活中,无论是写作、演讲还是表达情感,一句经典的句子往往能起到画龙点睛的作用。它...浏览全文>>
  • 【经典句句戳心的话】在生活的长河中,有些话虽然简单,却能直击人心,让人久久不能忘怀。这些句子往往蕴含着...浏览全文>>
  • 【经典精辟句子】在日常生活中,我们常常会遇到一些让人深思、令人难忘的句子。这些句子简洁有力,富有哲理,...浏览全文>>
  • 【经典惊悚片有哪些】惊悚片以其紧张的节奏、扣人心弦的情节和令人不安的氛围,成为电影史上最受欢迎的类型之...浏览全文>>
  • 【经典教师简单自我介绍】在教育工作中,教师的自我介绍是展示个人风格、教学理念和职业态度的重要方式。一个...浏览全文>>
  • 【经典简短句子一句话】在日常生活中,一句经典而简短的句子往往能给人留下深刻印象。它们简洁有力,蕴含深意...浏览全文>>
  • 【禁不住念什么】在日常生活中,我们常常会遇到一些词语让人“禁不住”去读、去想,甚至去写。其中,“禁不住...浏览全文>>
  • 【禁闭岛结局】《禁闭岛》(英文名:Shutter Island)是一部由马丁·斯科塞斯执导,莱昂纳多·迪卡普里奥主演...浏览全文>>
  • 【禁闭岛的结局真相】《禁闭岛》(英文名:Shutter Island)是一部由马丁·斯科塞斯执导,莱昂纳多·迪卡普里...浏览全文>>
  • 【靳字怎么读】在日常生活中,我们经常会遇到一些不常见的汉字,这些字不仅发音复杂,含义也常常让人感到困惑...浏览全文>>