1.问题
最长公共子序列问题(Longest Common Subsequence,LCS),给定序列X=<x1,x2,…,xm>,Y=<y1,y2,…,yn>,求 X 和 Y 的最长公共子序列。
2.解析
3.设计
算法伪代码:
实际样例演示:
算法二:
(1)x=4,y=3
删除2个:
X=<C,B,A,D>,Y=<B,C,D> => X=<C,B,A>,Y=<B,C> 输出D
(2)x=3,y=2
删除x:
=> X=<C,B>,Y=<B,C>
(3)x=2,y=2
删除x:
=> X=,Y=<B,C>
(4)x=1,y=2
删除2个:
=> X=<>, Y=< B> 输出C
(5)x=0,y=2
算法结束,输出<C,D>
4.分析
算法时间复杂度为:O(nm)