改进的Sunday模式匹配算法的设计与实现_巫喜红
( 1. 嘉应学院 计算机学院,广东 梅州 514015 ; 2. 广东工业大学 计算机学院,广东 广州 510006 )
研究了它的改进算法 I - Sunday 算法. 依据模 要: 针对 Sunday 模式匹配算法低效率问题, I - Sunday 算法在遇到坏字符时, 式匹配算法的跳跃思想, 不但考虑当前匹配窗口的下一位字符, 而 且也考虑了下一位字符之后长度为模式串长度的那个字符 , 这就跳跃了更大的距离. 另外, 匹配时 摘 采用双向并行方式进行匹配. 为了验证 I - Sunday 算法的性能, 在同等条件下, 在匹配次数和比较的 字符个数两方面对 I - Sunday 算法进行实验. 实验结果表明, 由于 I - Sunday 算法能够跳 过 大 量 的坏 字符, 大大地减少匹配次数和字符的比较, 从而缩短匹配时间, 有效地提高模式匹配速度. 关键词: Sunday 算法; Sunday 算法改进; 双向并行; 模式匹配 中图分类号: TP391. 9 文献标志码: A 文章编号: 1007- 2683 ( 2013 ) 06- 0052- 06
Design and Realization of the Improved Sunday Pattern Matching Algorithm
2 WU Xihong1 , LING Jie1,
( 1. Department of Computer Science and Technology ,Jiaying University,Meizhou 514015 ,China; 2. Computer College,Guangdong University of Technology,Guangzhou 510090 ,China)
1
几种经典算法
定义 n 为文本串的长 文本串 T = T0 … T n - 1 ,
m 为模式串的长度, (n 度; 模式串 P = P0 … P m - 1 , m) ; T 和 P 都建立在有限字符集上, 大小为 σ. 对于文本串 T 和模式串 P , 在 T 中寻找等于 P 的子串, 如果在 T 中存在等于 P 的子串, 则称匹配
下一轮判断 T [ 15]= ‘ h’, 故右移 BM_Bc [ h]=5。 下一轮判断 T [ 20]= ‘ n’, 故右移 BM_Bc [ n]=5。
匹配成功,且 T 串无可比较字符,匹配结束。
结果
比较次数是 6,比较的字符个数是 18.
1. 2
Sunday 算法 Sunday 算法是 Daniel M. Sunday 于 1990 年提出
收稿日期: 2013 - 03 - 04 基金项目: 国家十二五科技支撑计划项目( 2012BAH27F05 ) ; 广东省自然科学基金( S2012020011071 ) ; 广东省战略性新兴产业核心技术攻 关项目( 2012A010701004 ) . Email: wxhtuogao@ 126. com; 作者简介: 巫喜红( 1975 —) , 女, 副教授, 凌 捷( 1964 —) , 教授. 男, 博士,
表2
过程 轮数
字符集 C 和 BM - Bc 函数值
acghimnrstw 31555455525
BM 算法匹配过程
说明
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 串T s t r i n g n a t e h w a t c h n t c h n m a t c h
下一轮判断T [ 4]= ‘ n’,故右移 BM_Bc [ n]=5。
第1轮 ···· h 第2轮 第3轮 第4轮 第5轮 第6轮
···· h
m
[ 9]= ‘ c’,故右移 BM_Bc [ c]=1。 下一轮判断T
下一轮判断 T [ 10]= ‘ h’,故右移 BM_Bc [ h]=5。
a t c h m a t c h · · · · h m a t c h
P 与 T 的比较时, 可以从左向右或从右向左进行比 较, 它在发现不匹配时, 算法能跳过尽可能多的字符 以进行下一步的匹配, 从而提高了匹配效率. Sunday 算法所跳过的字符数与 BM 算法相似, 当 匹配失败时, 考虑的是当前匹配窗口中 T 的下一位字
的一种比 BM 算法搜索速度更快的算法. 其核心思 想是: 采用 BM 算法中的坏字符启发规则, 开始时 P 的最左边与 T 的最左边对齐, 模式匹配过程中进行
54
哈
尔ห้องสมุดไป่ตู้
滨
理
工
大
学
学
报
第 18 卷
0. . m - 1] i. . i + m - 1] 符, 也就是当 P[ 与 T[ 对齐进 i + m] 行匹配, 如果匹配失败, 则分析 T[ 这个字符, 来 0. . m - 1] i + m] 决定 P[ 右移的距离, 如果 T[ 没有在 匹配串中出现则直接跳过, 即移动步长 = 匹配串长度 + 1; 否则, 同 BM 算法一样其移动步长 = 匹配串中最 右端的该字符到末尾的距离 + 1. Sunday 右移距离的 [ 10 - 11 ] i + m] 计算公式 如式 ( 2 ) 所示, 即: 若 T[ 不在 P 中出现, 则右移距离为公式( 2) 中的第 1 种情况; 若 T [ i + m] 在 P 中出现, 则右移距离为式( 2 ) 中的第 2 种 情况. 具体的右移情况示意图如图 1 所示. m + 1 ; C≠P[j]. 即 C 不在 P 中出; ( 第 1 种情况) Sunday - Bc[C]= min{ j | P[j]= C, 1 ≤j≤m 且 T[m - j]= C} , 即 C 在 P 中出现( 第 2 种情况) . ( 2) 正文串为“stringnatch例如: 在前面的例子中, watchntchnmatch” , , 模 式 串 为“match ” 按 照 Sunday 算法, 字符集 C 和 Sunday - Bc 函数值如表 3 所示. 具
表1
C BM - Bc[ C]
[6 ] -[9 ]
计算机的广泛应用, 使得其成为人们日常生活 中不可缺少的一部分. 各行各业的人们在享受计算 机网络带给人们无限便利的同时, 网络安全也不断 引起人们的关注, 而模式匹配算法作为入侵检测系 统的关键技术之一也日益成为人们研究的热点 , 其 性能的优劣直接关系着入侵检测系统的效率 , 因此, 研究更高效的模式匹配算法已变得越来越重要 . 对 于模式匹配算法已有不少的研究成果 , 比如: 典型的 单模式算法主要有 Knuth - Morris - Pratt ( KMP ) 算 [1 ] Byoer - Moore ( BM) 算法[2]及 BM 算法的一些 法 、 [3 ] 多模式算法主要有 Aho - 变种算法 Sunday 算法 , Corasick( AC ) 算法[4]、 Wu - Mander 算法[5]. 本文通 过实例对 Sunday 算法进行分析, 并在其基础上从跳 跃距 离、 匹 配 方 式 两 方 面 进 行 改 进, 称改进后的 Sunday 算法为 Improved - Sunday 算法, 简称 I - Sunday 算法.
第6 期
巫喜红等: 改进的 Sunday 模式匹配算法的设计与实现
53
0
引
言
成功, 函数值返回为 P 中第一个字符相等的字符在 主串 T 中的序号, 否则称为匹配失败, 函数值返回 为 0, 这个搜索过程就是模式匹配. 1. 1 BM 算法 BM 算法是效率较高的一种单模式匹配算法 , BM 算法因其跳过了 这是因为在模式匹配过程中, 很多无用的字符, 被大多数入侵检测系统所应用, 其 基本思想是: 开始时 P 的最左边与 T 的最左边对 齐, 模式匹配过程中, 从右向左的把 P 同 T 进行比 较, 当某趟匹配失败时, 采用坏字符启发规则和好后 缀规则 计算 P 的右移距离, 并取两者最大值 , 来决定模式串的右移量 移动尽可能远的距离, 直到 文本串匹配结束. BM 算法的右移距离公式如式( 1) . ( 1 ≤ j≤ m) . m; C≠P[j] ( 第 1 种情况) 即 C 不在 P 中出现或 C = P[m] BM - Bc [C] = min{ j | P[j] = C, 1 ≤j≤m - 1 且 T[m - 1 - j] = C} , 即 C 在 P 中出现( 第 2 种情况) ( 1) 模 例如: 正文串为“stringnatchwatchntchnmatch ” “match” , 式串为 按照 BM 算法, 字符集 C 和 BM - Bc 函数值如表 1 所示, 具体的匹配的过程如表 2 所示 ( 表示不用比较的字符, 下划线粗体的字符表示比 较过的字符) .
Abstract: In order to improve the efficiency of Sunday pattern matching algorithm ,this paper studies an improved Sunday ( I - Sunday ) algorithm. According to the thought of jumping ,when encountering bad characters, the I - Sunday algorithm not only considers the next character of the current matching window ,but the character whose length equals the pattern strings’after the next character of the current matching window. All these decide that I - Sunday algorithm can jump a greater distance. In addition ,when matching the I - Sunday algorithm,we use the mode of bidirectional parallel matching. In order to verify the performance of the I - Sunday algorithm,in the same condition ,some experiments are done from two aspects which are matching times and compared characters ’ numbers. The experimental results show that the I - Sunday algorithm is more efficient than the Sunday algorithm because it can jump over a large number of bad character and greatly reduce the match number times and the character comparison so as to shorten the matching time. The I - Sunday algorithm effectively improves the speed of pattern matching. Key words: Sunday algorithm; improved Sunday algorithm; bidirectional parallel; pattern matching
几种模式匹配算法的效率分析
0引 言
模 式 匹配算 法一 直是 研究 焦点 之 一 , 应用 非 常广 泛 , 拼写 检查 、 言翻译 、 据压 缩 、 索 引擎 、 它 如 语 数 搜 网 络 入侵 检测 、 算机 病毒 特征 码 匹配 等 。 计
l 式 匹配 算法 模
字 符 串 的 的 定 位 操 作 通 常 称 作 串 的 模 式 匹 配 , 一 种 重 要 的 串 运 算 。模 式 匹 配 的 定 义 为 : 于 给 定 是 对
间 复 杂 度 为 O( ) s。
1 2 B 算 法 J . M
受 KMP算 法 的 启 发 , y r和 Mo r Bo e oe提 出 了一 种 新 的字 符 串 快 速 匹 配 算 法 — — B 算 法 。 它 是 从 另 外 M
一
个 角 度 出 发 , 出 一 种 比较 新 颖 的方 法 来 求 解 模 式 匹 配 问 题 。其 基 本 思 想 是 从 右 向左 的 把 模 式 同 文 本 提
立 即执 行 由 P 与 T [ i ] 始 的 从 左 到 右 的新 一 轮 的 匹 配 。 T[ ] 起 BM 算 法 在 预 处 理 阶 段 时 间 复 杂 度 为 O( +s , 间 复 杂 度 为 O( ) 在 搜 索 阶 段 时 间 复 杂 度 为 O( m )空 s ; m n 最 坏 情 况 下 要 比较 进 行 3 n次 比较 , 好 情 况 下 时 间 复 杂 度 为 O( / ), 最 n m) 。
5 0
维普资讯
定 义如下 :
叭 小
【 J,ma Jljc≤ m1} 它 情 况 ) m j { ] ,J≤一, 情 J 一 =x P[=1 其 况 它
j =
BM 算 法 的 思 想 是 : 果 在 执 行 正 文 中 从 第 i 位 置 起 返 前 一 段 与 模 式 匹 配 检 查 中 , 旦 出 现 不 匹 配 , 如 个 一
一种改进的Sunday模式匹配算法
… …
例如 , 模式 串为“ f a c d e f a ” , 主 串为 “ e k j a c f a d b c e a
第2 6卷 第 2期 2 0 1 3年 4月
四川理工学院学报( 自然科学版)
J o u na r l o f S i c h u a n U n i v e r s i t y o f S c i e n c e& E n g i n e e r i n g ( N a t u r a l S c i e n c e E d i t i o n ) y模 式 匹配算 法
李映刚
( 成都理工 大学管理科学学 院 , 成都 6 1 0 0 5 9 )
摘
要: 字符匹配效率是很多计算机应用 系统的性能瓶颈 , 研 究设计 高效的 匹配算法有助于提 高相
应 系统的应用性能。在分析典型 S u n d a y匹配算法的基础上 , 对其进行 了较 为有 效的改进。改进 算法在
Vo 1 . 2 6 No . 2 Ap r . 2 01 3
基于Sunday算法的改良单模式匹配算法
下一个 的字符 。若此字符 不存 在于模式 串 中, 则 可 以直 接将
此字符与其 下 一 个字 符 一起 跳 过 , 跳 转 的最 大距 离 将 变为 2 K e y L e n g t h+2 。 使用这种 隔字 节生成跳 转表 、 隔字节 跳转 的 方法可 以避免字符 的错位 匹配 , 同时加大算法 的最 大跳转距
2 . 3 算 法 匹 配 规 则
算法的改 良算法 。
2 . 1 模 式 串与 匹配 串预 处 理
S u n d a y 算法辅助 空 间 的存 储单 元 数等 于模 式 串编 码 的 最大码值范围 , 在 U n i c o d e编码下 , 算法 跳转表 的结构将 占用
2 5 6× 2 5 6个 存 储 单 元 , 造成一定的空问消耗 。
S u n d a y算 法 在 比较 失配 时 , 考 察 当前 窗 口的下 一 个 字 符, 一旦此 字符 不出现在模式 串中 , 则将此字符位置跳过 。 对于编 码 拆 分 后 的环 境 , 设 模 式 串 未 拆 分 前 长 度 为 K e y L e n g t h , 拆分后变为 2 K e y L e n g t h, 此环境下 , S u n d a y算法 可 以获得 的最大跳转 距离 为 2 K e y L e n g t h+1 , 其跳 转初 始 函数
离。
B M算法 的好后缀思想 和 K MP算法 的思想类似 , 因此在
中文环境 的作用也将受到 限制 , 而坏字符 思想 充分利用 大字 符集 的特点 , 可实现更快速 的跳跃 , 其最大跳转距离为模式 串 长度 m。在最 好情 况 下 , B M 算 法 的 时 间 复 杂 度 可 以 达 到
/ /S u n D a y B C为跳转表结构( 数组 ) / /S u n D a y B C [ i ] 为码值为 i 的字符对应的跳转值
天道中的经典语录句子
天道中的经典语录句子
1. 若能以天道为准则,无论境遇如何,人生定能安然无恙。
2. 天道无私,阳光普照,生命之路亦需融入其中。
3. 顺应天道,无需奢望过多,只为心安与喜悦而已。
4. 天道无常,唯有心境平和,方能跨越时光荣辱。
5. 崇尚天道,守护信仰,则人生问难题亦能迎刃而解。
6. 善行于天道,方能取得内在的宁静与平衡。
7. 天道的律动无所不在,唯有心灵柔软才能顺应其中。
8. 人无法左右天道,只能在命运之河中小心遨游。
9. 与天道相融,生命之树才能生根发芽、蓬勃生长。
10. 做一个积极向上的人,与天道同在,与世界和谐共舞。
一种改进的混合排课算法研究与实现
关键词:排课问题 ;遗传算法;贪婪算法 ; 研究 ;实现
An i r v d a g rt m ft e m i e r a g m e ta d i e l a i n mp o e l o i h o h x d a r n e n n t r a i t s z o
摘
ቤተ መጻሕፍቲ ባይዱ
要 :针对 目前 常 用的排课 算 法 中存 在 的 不足 ,分析 了基 于遗 传 算 法的 单 一排 课 算 法 存在 影
响排 课 因素 多、难 以进行 最优 组合 及 排课 效 率低 等 问题 ,提 出 了一种 基 于优 化 的遗 传 算 法和 贪
婪 算 法组合 的混合排 课 算法 。该 算 法首 先 采 用 改进 的 遗 传 算 法对 教 学 时 间 片进行 安 排 ,然后 再
sunday算法
sunday算法sunday算法是个特别容易记和理解的算法,但是我看⽹上很多博客都写错了。
所以整理了⼀下,防⽌⾃⼰遗忘,sunday算法的原理很简单。
1. 匹配,然后出现不匹配的时候,看主串最后⼀个元素的下⼀个元素,从右往左(为什么从右往左)检查⼦串是否包含(为什么要这样)为什么从右往左:因为下⼀个如果匹配的⼦串,第⼀个肯定先和最右边的那个i对应上,这样就跳过了好多。
2.重新对上以后,再重复⼀步骤,是不是很简单,但是代码可不简单。
代码:难点是位置的坐标很容易混,有个好记的办法就是,没有常数+1或者-1class Solution {public int strStr(String haystack, String needle) {if(haystack!=null&&needle.equals(""))return 0;int x=0;int j=0;while(x<haystack.length()&&j<needle.length()){int num=0;while(x+num<haystack.length()&&num<needle.length()&&haystack.charAt(x+num)==needle.charAt(num)){num++;}if(num==needle.length())return x;char p=' ';if(x+needle.length()<haystack.length())p=haystack.charAt(x+needle.length());int loc=stIndexOf(p);if(loc==-1)x=x+needle.length();else{x=x+needle.length()-loc;}}return -1;}}。
基于Sunday算法的改良单模式匹配算法
基于Sunday算法的改良单模式匹配算法朱永强;秦志光;江雪【摘要】Unicode编码的中文环境下应用Sunday算法时,如直接使用中文字符生成失效跳转表,将造成空间膨胀,而将中文字符拆分为两个字节进行处理,虽可以降低空间消耗,但匹配的执行速度又会受影响.针对Sunday算法应用于Unicode编码的字符拆分环境时所产生的时间性能降低问题,结合Unicode中文单元的内部关联性,优化了原Sunday算法的辅助跳转表与匹配规则,从而在解决Unicode下算法空间膨胀问题的同时,提升了Sunday算法在此环境下的时间性能,并利用模拟实验对改良算法的时间与空间性能进行了实验证明.【期刊名称】《计算机应用》【年(卷),期】2014(034)001【总页数】5页(P208-212)【关键词】模式匹配;Unicode编码;KMP算法;B-M算法;Sunday算法【作者】朱永强;秦志光;江雪【作者单位】电子科技大学计算机科学与工程学院,成都 611731;成都网安科技发展有限公司,成都 610092;电子科技大学计算机科学与工程学院,成都 611731;电子科技大学计算机科学与工程学院,成都 611731;成都网安科技发展有限公司,成都610092【正文语种】中文【中图分类】TP301.6模式匹配算法广泛应用在特征码检测、文件索引、生物DNA序列分析等领域。
作为计算机技术中最基本的算法之一,对模式匹配算法的研究起步较早,也是历来计算机算法领域研究的热点。
模式匹配算法的性能,不仅由算法设计方式决定,也受到其所使用的字符与语义环境的影响,同一种模式匹配算法应用于不同的环境时,其性能很可能产生较大的差异,因此设计模式匹配算法时,只有充分分析了算法设计思想与算法所使用环境的匹配度,才能发挥出算法的最高性能。
由于大部分模式匹配算法都是由国外学者提出,因此这些算法通常更适合于英文字符环境,所以这些算法应用于中文环境时,往往存在可继续优化的空间。
基于字符频率的字符串模式匹配算法的研究
1 几种经 典的模式 匹配算法
设 文 本 串 T= T。 ……T , n为 文 本 串 的 长 度 ;模 式 串P = P 。 … …P . . ,m为 模 式 串 的 长 度 , ( n > > m) ;T和 P 都 建 立 在 有 限 字 符 集 上 , 大 小 为
0 引言
网 络 带给 人 们 方便 的 同时 也 存 在 安 全 隐 患 , 而入 侵 检 测 系统 ( I DS ) 也 越 来越 广 泛地 应 用到 网络 系 统 中 , 因 为 它是 提 高 网络 系统 安全 性 的重 要 技 术之 一 。 目前 ,许 多I DS 都 是 依靠 模式 匹配 技 术来 进 行 入 侵 检 测 的 ,但 是 ,在 进 行 入 侵 检个I DS 总处理 时 间 的 3 0 %,对于 密 集 型 的流量 ,这 一消 耗 达到 8 0 % 。
关键词 :字符频率 ;模式匹配 ;I B M 算法 ;S u n d a y 算法 中图分类号 :T P 3 9 3 文献标识码 :A 文章编号 :1 0 0 9 — 0 1 3 4 ( 2 o l 3 ) 0 9 ( 上) 一 0 0 1 0 -0 5
D o i :1 0 . 3 9 6 9 / J . i s s n . 1 0 0 9 - 0 1 3 4 . 2 0 1 3 . 0 9 (I - ) . 0 3
串 ,各 种 算 法 各 显 神通 ,各 有 各 的 寻 找 方法 ,在 此简要 介绍4 种经 典匹 配算 法 。 B F 算 法 是 效 率 最 低 的 算 法 ,从 左 到右 进 行
匹配 。 首 先 将T[ 1 】 与P [ 1 】 进 行 比较 ,若 不 同 , 就 将T 【 2 】 与P 【 l 1 进 行 比较 ,… … ,否 则从T[ 2 1 开 始 与
单模式精确匹配算法研究
BM .Tu e n dBM n lo i msi s tsa t r na t a p r to .Th n dB lo i m h a dQS ag r h s a if co y i cu l ea in t o eTu e M ag rt i t e h s
单模式精确匹配算法 ; 通过上机 实验 , 采用不 同的模式 串长度对这些算 法的匹配次数 、 比较过 的字符个数 和所 需时间 3方面进行测试 ; 结果表 明 ,M、 u e M、 B T ndB QS算法在 实际运行 性能相对 较好 ; Tu e M 算法可 而 n dB 有效地减少字符 比较次数 , 是其 中时间复杂最优的算法 。 关键词 : 单模式精 确匹配 ; M 算法 ; n dB 算法 ; B Tu e M QS算法
a h i . n t e tme
Ke r s sn l at r x c thn ;BM lo i m ;Tu e M l o ih ;QS ag rt m y wo d : ig ep te n e a tma c ig ag rt h n d B ag rt m lo i h
q ik s n mo gt e eag rt m sb c u ei c n r d c h r ce o p rs n fe tv l n h r— uc e to ea n h s l o ih e a s a e u ec a a t rc m a io sefc iey a d s o t t
单 模 式 精 确 匹配 算 法 研 究
巫 喜 红 凌
509) 10 0
541 ; . 1 0 5 2广东工业大学 计算机学院 , 广东 广州
摘
要: 模式 匹配算法在各领域 中有 重大的应 用价值 。文章详细分析 了 B 、 F KMP B Tu e M 和 QS5 、 M、 n dB 种
字符串匹配算法Sunday的改进
第36卷 第1期2016年01月西安科技大学学报JOURNALOFXI’ANUNIVERSITYOFSCIENCEANDTECHNOLOGYVol.36 No 1Jan 2016 DOI:10.13800/j.cnki.xakjdxxb.2016.0119文章编号:1672-9315(2016)01-0111-05字符串匹配算法Sunday的改进朱宁洪(西安科技大学计算机科学与技术学院,陕西西安710054)摘 要:字符串的模式匹配应用十分广泛,在信息的搜索查询等方面具有重要作用,研究串匹配算法的效率具有重要的理论价值和实际意义。
在分析几种经典模式匹配算法的基础上,对当前应用最广泛的Sunday算法提出了改进的算法Zhusunday.算法主要改进之处是:在字符串从右向左匹配过程中,当文本字符中出现不匹配模式字符串的字符且该文本字符不是坏字符时,算法从右向左搜索当前文本字符在模式串中出现的位置;找到当前字符在模式串中的位置后继续再向左匹配模式串字符一次,如果仍不匹配时,模式窗口比Sunday算法多向右移动一个字符。
改进的算法提高了模式匹配的执行效率,通过大量对比实验证明了该算法的有效性。
最后得出结论:在实际应用中,坏字符大量存在的情况下,改进算法的最优时间复杂度可达O(n/m),在同一时间复杂度下,比Sunday算法效率提高25~50%.关键词:Sunday算法;Zhusunday算法;模式匹配;坏字符中图分类号:TP391 文献标志码:AImprovementofSundaypatternmatchingalgorithmZHUNing hong(CollegeofComputerScienceandEngineering,Xi’anUniversityofScienceandTechnology,Xi’an710054,China)Abstract:Stringpatternmatchingiswidelyusedininformationsearchandquery,anditisimportanttostudytheefficiencyofthestringmatchingalgorithmwiththeoreticalvalueandpracticalsignificance.Onthebasisoftheanalysisofseveralclassicalpatternmatchingalgorithms,thepaperputsforwardaZhusundayalgorithmwhichisimprovedfromthemostwidelyusedSundayalgorithm.Theimprovedpositionofthealgorithmis:inthematchingprocessfromtherightofthetextstringtotheleft,whenthecharacterofthetextdoesnotmatchthecharacterofthepatternstring,itisnotabadcharacter,thealgorithmsearchesthepositionofthecurrenttextcharacterfromtherighttotheleftinthepatternstring.Afterfindingtheposition,theimprovedalgorithmcontinuestomatchthetwocharactersintheleftforanothertime.Ifthereisnomatch,thepatternwindowwillmovetorightonestepmorethanthemovementofSundayalgorithm.Theimprovedalgorithmimprovestheefficiencyofthepatternmatching,andtheeffectivenessoftheproposedalgorithmisprovedbyalotofexperiments.Finallythepaperdrawsaconclusion:inpracticalapplicationtherearealargenumberofthebadcharacters,theoptimaltimecomplexityoftheimprovedalgorithmisO(n/m),andatthesametimecomplexity,theimprovedalgorithmismoreefficientthantheSundayalgorithmby25~50%.Keywords:Sundayalgorithm;Zhusundayalgorithm;patternmatching;badcharacter收稿日期:2015-07-29 责任编辑:高 佳基金项目:国家自然基金(煤炭联合基金)(U1261114)作者简介:朱宁洪(1969-),男,山东兖州人,讲师,E mail:zhuninghong@sohu.com博看网 . All Rights Reserved.0 引 言字符串匹配问题是计算机科学中的最基本的问题,如何能在最短的时间内确定特征字符串在文本中是否出现过具有重要的意义。
