- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
几种模式匹配算法的效率分析.pdf
第27卷 第2期 大庆师范学院学报 V01.27 No.2
2007年4月 JOURNAL OF DAQING NORMAL UNIVERSnTY Apil1.2Oo7
几种模式匹配算法的效率分析
巫 喜 红
(嘉应学院计算机科学与技术系,广东梅州514015)
摘 要:分析几种模式匹配算法如KMP、BM、RK、SO。通过上机实验对这些算法的匹配时间进行测试,结果表明在
这些模式匹配算法中BM算法是速度最快效率最高的算法。
关键词:模式匹配;KMP算法;BM算法;RK算法;SO算法
作者简介:巫喜红(1975一),女,广东丰顺人,嘉应学院计算机科学与技术系讲师。
中图分类号:TP301.6 文献标识码:A 文章编号:1006-2165(2007)02-0050-03 收稿日期:2006—12—30
0引言
模式匹配算法一直是研究焦点之一,它应用非常广泛,如拼写检查、语言翻译、数据压缩、搜索引擎、网
络入侵检测、计算机病毒特征码匹配等。
l模式匹配算法
字符串的的定位操作通常称作串的模式匹配,是一种重要的串运算 。模式匹配的定义为:对于给定
的正文主串T=T ……T (长度为 n)和模式串P=P ……P (长度为 m),(nm),要求在主串 T中寻找
等于模式串P的子串,如果在T中找到等于P的子串,则称匹配成功,函数值返回为 P中第一个字符相等
的字符在主串T中的序号,否则称为匹配失败,函数值返回为0。
在研究各算法前,作如下一些相关定义:
字符集:C={CI C在正文中出现}
正文串T:Tl T2……T。…Ti+ 一.…T
模式串 P:Pl…Pi…P
1.1 KMP算法
KMP算法的思想是:若某趟匹配过程中T[i]和 P[J]不匹配,而前J一1个字符已经匹配,此时只需右
移 P,T不动,即指针 i不回溯,让 P[k]与T[i]继续比较。移动后重新开始比较的位置 k仅与模式串有关,
因此 k可以事先确定。若定义函数 next(J)=k,则 next函数的定义为:
next(j)=max{k I P[1..k一1]=P[J—k+1..j一1]}
KMP算法将模式串向右滑动可以提高匹配算法的效率,但相对比较复杂,时间复杂度为 O(m+s),空
间复杂度为O(s)。
1.2 BM算法 J
受KMP算法的启发,Boyer和 Moore提出了一种新的字符串快速匹配算法——BM算法。它是从另外
一 个角度出发,提出一种比较新颖的方法来求解模式匹配问题。其基本思想是从右向左的把模式同文本
做比较。开始时仍是 P的最左边与T的最左边对齐,当某趟比较中出现不匹配时,BM算法采用两条启发
性规则计算模式串右移的距离,即坏字符启发规则和好后缀启发规则;当与最右的模式符号做比较的文本
符号在模式中根本就没有出现,则模式可以在这个文本符号之后移位 m个位置。
BM算法的关键是,对模式串P定义一个从字母到正整数的映射函数distl,
distl:c一{1,2,…,nl}
distl也称为滑动距离函数,给出了可能出现的任意字符 c在模式串中的位置。distl函数定义:具体
50
定义如下 :
叭 小 j=
【m一,j= {l[j]=c,≤≤m一},其它情况J)
J ma x max J P 1 J 1 它情况
BM算法的思想是:如果在执行正文中从第 i个位置起返前一段与模式匹配检查中,一旦出现不匹配,
立即执行由 P 与 T [T[i]]起始的从左到右的新一轮的匹配。
BM算法在预处理阶段时间复杂度为O(m+s),空间复杂度为 O(s);在搜索阶段时间复杂度为 O(m
n),最坏情况下要比较进行 3 n次比较,最好情况下时间复杂度为 O(n/m)。
1.3 RK算法 ¨
RK算法是 Turing奖获得者 M.O.Rabin和 R.M.Karp在 1981年提出来的,该算法采用了与 KMP算
法和 BM算法完全不同的方法。该算法利用 Hash方法和素数理论,首先定义一个 Hash函数,然后
您可能关注的文档
- 信息技术与高校党建工作.pdf
- 信息消费与可持续消费.pdf
- 信息电源系统薄弱点分析和改进方案.pdf
- 债务人剥离优良资产另行投资后对债权人的保护.pdf
- 倾斜圆盘气吹式播种器设计及试验研究.pdf
- 做人的箴言.pdf
- 做好大学生诚信教育浅析.pdf
- 健康教育在综合性医院门诊服务流程中的实施.pdf
- 偶图的边共色数.pdf
- 储层分析中火山岩岩性的测井识别.pdf
- 2024-2025学年安徽省亳州市涡阳县高二下学期2月开学考试政治试题(解析版).docx
- 2024-2025学年江西省赣州市上犹县高二下学期开学考试政治试题(解析版).docx
- 2024-2025学年山东省济宁市高二下学期开学考试政治试题(解析版).docx
- 2024-2025学年山西省卓越联盟高三下学期2月开学质量检测政治试题(解析版).docx
- 2024-2025学年新疆乌鲁木齐市高二下学期2月开学考试政治试题(解析版).docx
- 2024-2025学年新疆维吾尔自治区乌鲁木齐地区高三2月大联考文科综合政治试题(解析版).docx
- 2024-2025学年安徽省蚌埠市固镇县高一上学期1月期末考试政治试题 (解析版).docx
- 2024-2025学年江苏省扬州市高三上学期期末检测政治试卷(解析版).docx
- 2024-2025学年江西省吉安市高三上学期期末教学质量检测政治试题(解析版).docx
- 2024-2025学年山东省济宁市高二上学期1月期末考试政治试题(解析版).docx
最近下载
- 幼儿想象的发展与心理.ppt VIP
- 人教版小学六年级数学下册《第三单元 圆柱与圆锥》大单元整体教学设计[2022课标].pdf
- 2021年北京事业单位考试【事业单位考试真题】整理与复习详细解析版(附答案解析).docx
- 11-傅建佳《活在课堂里》读书分享公开课教案教学设计课件资料.pptx VIP
- 2024年5月江苏省事业单位招聘考试【综合知识与能力素质】真题及答案解析(管理类和其他类).pdf
- SX1261-2中文数据手册.pdf VIP
- 2024小学五年级奥林匹克数学竞赛决赛试卷.pdf
- (完整版)档案数字化加工方案. .pdf
- 黑布林阅读初二4《时光隧道》中文版.doc
- 基于STM32的智能垃圾桶的设计与实现毕业论文.doc
文档评论(0)