1 / 21
文档名称:

串的模式匹配算法.ppt

格式:ppt   大小:1,890KB   页数:21页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

串的模式匹配算法.ppt

上传人:石角利妹 2022/4/2 文件大小:1.85 MB

下载得到文件列表

串的模式匹配算法.ppt

文档介绍

文档介绍:串的模式匹配算法
*
第1页,共21页,编辑于2022年,星期一
算法目的:确定主串中所含子串第一次出现的位置(定位)
串的模式匹配算法
BF算法 (又称古典的、经典的、朴素的、穷举的)
KMP算法
算 且‘T1…Tk-1’=‘Tj-(k-1) …Tj-1’ }
1 其他情况
讨论:
(1) next[ j ]的物理意义是什么?
(2) next[ j ]具体怎么求?—即KMP算法的实现
令k = next[ j ](k 与j 显然具有函数关系),则
取T首与Tj处最大的相同子串
新起点 k怎么求?
*
第8页,共21页,编辑于2022年,星期一
(1) next[ j ]有何物理意义?
next[j]函数表征着模式T中最大相同前缀子串和后缀子串(真子串)的长度。
可见,模式中相似部分越多,则next[j]函数越大,它既表示模式T字符之间的相关度越高,也表示j位置以前与主串部分匹配的字符数越多。
即:next[j]越大,模式串向右滑动得越远,与主串进行比较的次数越少,时间复杂度就越低(时间效率)。
next[ j ]=max { k |1<k<j 且‘T1…Tk-1’=‘Tj-(k-1) …Tj-1’ }
模式串从第1位往右直到K-1位
模式串从j的前一位往左经过K-1位
想一想:如果主串和模式均为二进制码流,用KMP算法效果如何?
T=‘a b a a b c a c’
再想一想:如果主串是外存中一个大文件,用KMP算法效果又如何?
(2) next[ j ]具体怎么求?—即KMP算法的实现
*
第9页,共21页,编辑于2022年,星期一
计算Next[j]的方法:
当j=1时,Next[j]=0;
//Next[j]=0表示根本不进行字符比较
当j>1时,Next[j]的值为:模式串的位置从1到j-1构成的串中所出现的首尾相同的子串的最大长度加1。
无首尾相同的子串时Next[j]的值为1。
// Next[j]=1表示从模式串头部开始进行字符比较
(2) next[ j ]怎么计算?
怎样计算模式T所有可能的失配点 j 所对应的 next[j]?
*
第10页,共21页,编辑于2022年,星期一
从两头往中间比较
模 式 串 T: a b a a b c a c
可能失配位 j: 1 2 3 4 5 6 7 8
新匹配位k=next[j] :
next[ j ]=
0 当j=1时
max { k |1<k<j 且‘T1…Tk-1’=‘Tj-(k-1) …Tj-1’ }
1 其他情况
0
1
1
2
2
3
1
2
讨论:
j=1时, next[ j ]≡ 0;//属于“j=1”情况;
j=2时, next[ j ]≡ 1;// 找不到1<k<j的k,属于“其他情况”;
刚才已归纳:
j=3时, k={2},只需查看‘T1’=‘T2’成立否,No则属于其他情况
j=4时, k={2,3},要查看‘T1’=‘T3’ 及‘T1T2’=‘T2 T3’ 是否成立
j=5时, k={2,3,4},要查看‘T1’=‘T4’ ,‘T1T2’=‘T3T4’ 和
‘T1T2T3’=‘T2T3T4’
以此类推,可得后续next[j]值。
可用演示程序验证
next[j]与s无关,可以预先计算
例:
*
第11页,共21页,编辑于2022年,星期一
下一个要讨论的问题是:如何用递推方式来求出最大相同子串的长度呢?换言之,如何让电脑替我们求出最大相同子串呢?这个问题一旦解决,整个KMP算法就可以掌握得很透彻了。
void get_next(SString T, int &next[ ] ){ //
//求模式串T的next函数值并存入数组next[ ]。
i=1; next[1]=0; j=0;
while(i<T[0] ){
if(j= = 0||T[i]= =T[j]){++i; ++j; next[i]=j;}
else j=next[j];
}
}// get_next
递推法编程,参见教材P83程序
*
第12页,共21页,编辑于2022年,星期一
求解next[j]流程图(递推)
i=1; j=0
next[1]=0
i<T[0]
j==0 || T[i]==T[j]
++i; ++j;
next[i]=j;
j=next[

最近更新

12.15详解无线 AP系统,以及与 无线路由器的区.. 7页

体外预应力法在加固连续梁桥中的应用的开题报.. 2页

11.28智慧校园智能化系统整体解决方案 81页

《推力和拉力作业设计方案-2023-2024学年科学.. 5页

传承语素在现代汉语颜色构成中的使用及对我汉.. 2页

伊犁郁金香生物学特性研究及栽培郁金香引种试.. 2页

端午娱乐活动方案 6页

短路试验方案 7页

企业内部控制要素对财务风险影响的实证研究的.. 2页

以门脉高压症为主要表现的原发性骨髓纤维化回.. 2页

从文化背景因素看英语新闻汉译的开题报告 2页

人骨髓间充质干细胞与脐静脉内皮细胞共培养构.. 2页

初三化学计算题专题训练 3页

初三化学海水晒盐练习 3页

人力资源视角下的财务报告研究的开题报告 2页

人C型凝集素受体Dectin--1新亚型的功能研究的.. 2页

父与子最佳方案 6页

港口岸电布局方案 9页

云会计面临的机遇与挑战以及应对措施中期报告.. 2页

活动流程策划方案 7页

活动促销方案 7页

公开阅读高考理综卷(全国卷Ⅱ)生物试题分析 5页

雪花以什么为主题作文(通用10篇) 8页

幼儿园野炊炒菜观察记录 2页

新中国史题库及答案六篇 95页

《东京审判》台词 3页

企业要发展,我为企业做什么 5页

挂篮悬臂浇筑施作业安全检查表 3页

万家岭镇中小学排球校本课程教材 27页

以旧换新操作流程 2页