- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在网上查阅到关于算法的改进,摘录如下最长公共子序列问题的改进.doc
在网上查阅到关于算法的改进,摘录如下:
最长公共子序列问题的改进快速算法
李欣 舒风笛
摘 要 现在几个最常用的解决最长公共子序列(LCS)问题的算法的时间复杂度分别是O(pn),O(n(m-p))。这里m、n为两个待比较字符串的长度,p是最长公共子串的长度。给出一种时间复杂度为O(p(m-p)),空间复杂度为O(m+n)的算法。与以前的算法相比,不管在pm的情况下,还是在p接近m时,这种算法都有更快的速度。关键词 最长公共子序列 LCS
1 问题介绍与基本定义
最长公共子序列(Longest Common Subsequence,LCS)是将两个给定字符串分别删去零个或多个字符后得到的长度最长的相同字符序列。例如,字符串abcabcabb与bcacacbb的最长公共子序列为bcacabb。LCS问题就是要求两个给定字符串的最长公共子序列。本文给出了一种比较有效的求解LCS问题的算法,它是对Nakatsu的时间复杂度为O(n(m-p))算法的改进。它的时间复杂度是O(p(m-p)),空间复杂度为O(m+n)。 LCS问题的算法有着广泛的应用。最初对LCS问题的研究是将它作为一种差分压缩算法来研究的。例如,在版本管理系统中,一个文件经过不断地修改产生不同的版本,新产生的版本相对老版本变化并不大。为了节省存储空间,我们可以将老文件版本与修改后新版本进行比较,找出它们的相同部分和不同部分。这样就不必将原始文件和修改文件都独立存储,而只需存储老文件版本以及新老版本的不同部分即可。这种增量式存储方法在文件版本较多的情况下能够大大提高存储效率。两个文件版本的比较就类似于LCS问题。LCS算法的时间复杂度与其它差分压缩算法(如Vdelta算法[4])比较相对较高,它也不是压缩比例最高的差分压缩算法,所以现在它已经基本退出了这方面的应用。但在版本管理系统中,对同一文件的不同版本进行比较与合并时,LCS算法还是有重要作用的。 LCS算法还可用在基因工程领域。如确定一种致病基因的基本方法就是将该疾病患者的DNA链与健康者的DNA链相比较,找出其中的相同部分与不同部分,再进行分析。这种基因链的比较也可以用LCS算法来解决。 80年代初期,国外对LCS算法的研究比较多。现在,LCS算法在一些领域有新的应用,所以对它研究又有增长的趋势。 下面先给出一些基本定义: 定义1 子序列(Subsequence)。给定字符串A= A[1]A[2]...A[m],(A[i]是A的第i个字母,A[i]∈字符集∑,1=im=|A|,|A|表示字符串A的长度),字符串B是A的子序列是指B=A[i1]A[i2]...A[ik],其中i1i2...ik且k=m。 也就是说任意删去给定字符串中的零个或多个字符,但不改变剩余字符的顺序就得到了该字符串的一个子序列。例如:bec是abdeace的一个子序列。子序列与子串的区别在于子序列不必是原字符串中的连续字符。 定义2 公共子序列(Common Subsequence)。给定字符串A、B、C,C称为A和B的公共子序列是指C既是A的子序列,又是B的子序列。例如、abd是abcd和bacbd的公共子序列。 定义3 最长公共子序列(Longest Common Subsequence,简称LCS)。给定字符串A、B、C,C称为A和B的最长公共子序列是指C是A和B的公共子序列,且对于A和B的任意公共子序列D,都有|D|=|C|。 两个字符串的LCS不是唯一的。例如A= cbacbaaba,B=abcdbb,C=bcbb和D=acbb,C和D都是A和B的最长公共子序列。 给定字符串A和B,|A|=m,|B|=n,不妨设m=n,LCS问题就是要求出A和B的LCS。
2 几种目前常用的算法
已经证明,LCS问题算法的时间复杂度不可能小于O(m log n)[1]。目前几种比较有效的算法有Hirschberg[2]提出的算法,时间复杂度分别为O(pn),以及nakatsu[3]提出的算法,时间复杂度为O(n(m-p))。 这两种算法以及我们要介绍的改进快速算法都是基于下面几个基本定理: 定义4 给定字符串A=A[1]A[2]...A[m]和字符串B=B[1]B[2]...B[n],A(1: i)表示A的连续子序列A[1]A[2]...A[i],同样B(1: j)表示B的连续子序列B[1]B[2]...B[j]。Li(k)表示所有与字符串A(1:i)有长度为k的LCS的字符串B(1:j)中j的最小值。用公式表示就是Li(k)=Minj(LCS(A(1:i),B(1:j))=k)。 定理1 i∈[1,m],有Li(1)Li(2)Li(3)... 定理2 i∈[1,m-1],(k∈[1
您可能关注的文档
- 商务英语-英语合作网.doc
- 商务英语(上)(第一次课)-珠海广播电视大学.ppt
- 商务谈判-安徽广播影视职业技术学院.ppt
- 商概01-01商业的意义.doc
- 商誉的会计学.ppt
- 善化高中105学年度高一新生生物科暑假作业江佳諠老师、许益豪老师.doc
- 喷印品质检测(选配).ppt
- 四、加边框线.doc
- 四、指定需要录制的应用程序-海南软件职业技术学院.ppt
- 四下第一单元教案.doc.doc
- 在苹果MacbookPro上安装Windows71)用惯Windows系统的PC,面对.doc
- 在近几年的技术革新中,软件平台化是最有意义的,也是最有生命力的.doc
- 在非经济合作发展组织的生产者延伸责任印度的废电器和电子设备之管理.ppt
- 地理信息系统集成平台框架结构研究-遥感数字图像处理方法.doc
- 地震监控主机-设备规格.ppt
- 地震资料解释实验指导书-长江大学地球物理与石油资源学院.doc
- 块语句、元件例化语句与生成语句(P67-68、73-76).ppt
- 垂直搜索-艾瑞网.ppt
- 垃圾邮件过滤系统-CWIRF----中文Web信息检索论坛.ppt
- 型号BDAMA-4000-UXX,(XX代表授权许可数量,如-深圳政府采购.doc
最近下载
- 2022年教师资格之中学体育学科知识与教学能力模拟试题含答案.docx VIP
- iatf16949考试试题及答案.docx VIP
- 《深冷空分装置操作与安全标准手册》.docx VIP
- 新版典范英语7-2Noisy-Neighbours原文及翻译.pdf VIP
- 某酒店月度经营分析会PPT(共 185张).ppt VIP
- 机械租赁服务方案(3).docx VIP
- gb1231-2016螺栓扭矩标准.pdf VIP
- 陆上风电场工程设计概算编制规定及费用标准(2019).docx VIP
- {安全管理制度}空分安全操作规程.pdf VIP
- 2025年浙江省高考英语试卷(含答案解析)+听力音频+听力原文.docx
文档评论(0)