算法描述[9]:
当模式匹配执行到比较字符Ti和Pi,其中l=i=n,l=j=m。
(1)若Ti=Pj则继续往右作匹配检测,即对Ti+1和Pj+l;进行匹配检测。
(2)若Ti≠Pj时则分两种情况进行讨论:
第一种情况:若j=l,则对Ti+l和Pi进行匹配检测,即把模式和正文向右移动一位再从模式的第一个字符进行匹配。
第二种情况:若l<j=m,们将试图在模式中找到一个合适位置再进行比较,们把这个下标记做next[j]。执行Ti和next[j]的匹配,其中next[j]的构造是算法的核心,约定如下:
Next[j]=-1,当j=0时
Next[j]=max{k|0<k<j且“P0 P1…Pk-1”=“Pj-k Pj-k+1…Pj-1”}此集合不为空集
Next[j]=0,其他情况
由于本文主讲的是KMP算法,估计们举例详细说明,如主串为ababcabcacbab,模式串为abcac,匹配过程如下图3-2:
上一篇:云计算在校园网中的应用与研究
下一篇:C#+sqlserver公司管理系统设计客户跟进模块设计

基于android的环境信息管理系统设计

ASP.NET飞翔租贷汽车公司信...

基于激光超声检测金属材...

基于MOODLE平台的在线交互式学习设计

基于离散事件系统Petri网模型的可达图研究

基于高斯过程动态模型的时序数据恢复方法

基于深度学习的目标识别算法研究

STC89C52单片机NRF24L01的无线病房呼叫系统设计

基于Joomla平台的计算机学院网站设计与开发

浅谈高校行政管理人员的...

从政策角度谈黑龙江對俄...

AES算法GPU协处理下分组加...

压疮高危人群的标准化中...

浅论职工思想政治工作茬...

酵母菌发酵生产天然香料...

提高教育质量,构建大學生...

上海居民的社会参与研究