1. 首页
  2. 考试认证
  3. 其它
  4. 子问题的递归结构-数据分析方法梅长林

子问题的递归结构-数据分析方法梅长林

上传者: 2024-07-23 02:27:54上传 PDF文件 14.85MB 热度 4次

2.1、最长公共子序列的结构有如下表示:设序列X=和Y=的一个最长公共子序列Z=,则:

  1. 若xm=yn,则zk=xm=yn且Zk-1是Xm-1和Yn-1的最长公共子序列;

  2. 若xm≠yn且zk≠xm ,则Z是Xm-1和Y的最长公共子序列;

  3. 若xm≠yn且zk≠yn ,则Z是X和Yn-1的最长公共子序列。

其中Xm-1=,Yn-1=,Zk-1=

2.2、子问题的递归结构由最长公共子序列问题的最优子结构性质可知,要找出X=和Y=的最长公共子序列,可按以下方式递归地进行:

当xm=yn时,找出Xm-1和Yn-1的最长公共子序列,然后在其尾部加上xm(=yn)即可得X和Y的一个最长公共子序列。当xm≠yn时,必须解两个子问题,即找出Xm-1和Y的一个最长公共子序列及X和Yn-1的一个最长公共子序列。这两个公共子序列中较长者即为X和Y的一个最长公共子序列。

这种递归结构使得最长公共子序列问题具有子问题重叠性质。在计算X和Y的最长公共子序列时,可能要计算出X和Yn-1及Xm-1和Y的最长公共子序列。而这两个子问题都包含一个公共子问题,即计算Xm-1和Yn-1的最长公共子序列。与矩阵连乘积最优计算次序问题类似,我们来建立子问题的最优值的递归关系。

用c[i,j]记录序列Xi和Yj的最长公共子序列的长度。其中Xi=,Yj=。当i=0或j=0时,空序列是Xi和Yj的最长公共子序列,故c[i,j]=0。其他情况下,由定理可建立递归关系如下:

最大公共子序列实现公共子序列算法with c sharp

公共子序列

最长公共子序列算法

算法关于寻找公共子序列

数据结构与算法题解最长公共子序列和最长公共子串.pdf

算公共子序列

最长公共子序列算法总结

算法导论_最长公共子序列

最长公共子序列LCS算法

公共子序列算法实现C++

LCS最长公共子序列算法

最长公共子序列_算法分析之动态规划

算法复杂性分析最大公共子序列

算法设计与分析最长公共子序列问题

最长不升公共子序列问题求出子序列长度以及该子序列

最长公共子序列

cc最长公共子序列实现算法

最长公共子序列的若干算法

最大公共子序列LCS算法实现

最长公共子序列的Nakatsu算法

用户评论