- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
模式匹配的KMP算法研究
学生姓名:黄飞 指导老师:罗心
摘 要 在计算机科学领域,串的模式匹配(以下简称为串匹配)算法一直都是研究焦点之一。在拼写检查、语言翻译、数据压缩、搜索引擎、网络入侵检测、计算机病毒特征码匹配以及DNA序列匹配等应用中,都需要进行串匹配。串匹配就是在主串中查找模式串的一个或所有出现。在本文中主串表示为S=s1s2s3…sn,模式串表示为T=t1t2…tm。串匹配从方式上可分为精确匹配、模糊匹配、并行匹配等,著名的匹配算法有BF算法、KMP算法、BM算法及一些改进算法。本文主要在精确匹配方面对KMP算法进行了讨论并对它做一些改进以及利用改进的KMP来实现多次模式匹配。
关键字:模式匹配;主串;模式串;KMP算法
Research and Analysis of KMP Pattern Matching Algorithm
Student:Huangfei Teacher:Luoxin
Abstract In computer science, String pattern matching(Hereinafter referred to as the string matching) algorithm is always the focus of the study. In the spell check, language translation, data compression, search engine, the network intrusion detection system, a computer virus signature matching DNA sequences and the application in the match, matched to string matching. String matching is in search of a string of pattern or all appear. In this paper, the string is S = s1s2s3... Sn, string pattern for T = t1t2... tm. String matching way can be divided from the accurate matching, fuzzy matching, parallel matching etc., the famous matching algorithms are KMP algorithm, BF algorithm, the algorithm and some BM algorithm. This paper in precise KMP algorithm for matching aspects are discussed and some improvement on it and using the improved KMP to realize the multiple pattern matching.
Key words: pattern matching, The string; Pattern strings;KMP algorithm
1 引言
KMP算法是是对一般模式匹配算法的改进,由D.E.Knuth与V.R.Pratt和J.H.Morris 同时发现的因此人们称它为克努特-莫里斯-莫拉特操作(简称为KMP算法)。
对于一般的模式匹配算法:分别利用两个指针i和j指示主串S和T中的当前正待比较的字符位置。算法的基本思想是:从主串的S的第POS个字符开始起和模式的第一个字符比较之,如相等,则继续逐个比较后续字符;否则从主串的下一个字符起再重新和模式的字符比较之。以此类推,直到模式T中的每个字符依次和主串S中的一个连续字符序列相等,则称匹配成功,则函数值为和模式T中的第一个字符相等的字符在主串S中的序号,否则称匹配不成功,函数值为0.而对于模式匹配的KMP算法可以在O(n+m)的时间数量级上完成串的模式匹配操作。其改进过程在于:每当一趟匹配过程出现字符比较不相等时,不需回溯i指针,而是利用已经得到的部分匹配的结果将模式串向右滑动一段尽可能远的距离后,继续进行比较。滑动的这一段距离我们将会用到函数next[],
KMP算法的最大特点是指示主串的指针不须回溯,整个匹配过程中,对主串仅需从头到尾扫描一遍,这对处理从外设输入的庞大文件很有效,可以边度入边匹配,而无需回头重读。
2、问题分析
2.1 问题的分析和任务的定义
用C/C++编写一个程序实现模式匹配的KMP算法。要求在一个字符串中搜索某个子串,
您可能关注的文档
- 高三数学变式导学与实践和研究.ppt
- 高速铁道技术201314第一学期《计算机文化基础》.doc
- 高校教师在课堂教学组织中与四种角色以“经济学”教学为例.pdf
- 高一研究性学习论文.doc
- 高职高专计算机及应用专业人才培养目标浅析.pdf
- 高职公共基础课程改革与探索和实践.pdf
- 高职学生心理健康教育模式与探索和实践.pdf
- 高职院校动画专业人才培养分析和对策研究.doc
- 高职院校学生管理工作存在与问题及对策研究.pdf
- 高中化学论文:新课改背景下化学教师专业化发展存在与问题及思考.pdf
- 2024年云阳县公务员考试行测试卷历年真题及答案详解(有一套).docx
- 2024年垫江县公务员考试行测试卷历年真题及答案详解(名师系列).docx
- 2024年巴音郭楞蒙古自治州公务员考试行测试卷历年真题精选答案详解.docx
- 2024年毕节地区公务员考试行测试卷历年真题含答案详解.docx
- 2024年怀化市公务员考试行测真题及一套完整答案详解.docx
- 2023年龙岩市公务员考试行测试卷历年真题及答案详解(名校卷).docx
- 2024年咸宁市公务员考试行测试卷历年真题及完整答案详解.docx
- 2024年云浮市公务员考试行测试卷历年真题带答案详解.docx
- 2024年七台河市公务员考试行测试卷历年真题及答案详解(典优).docx
- 2024年大理州公务员考试行测真题及答案详解(全优).docx
文档评论(0)