
KMP,BF,BM,RK
文章平均质量分 62
字符串搜索
Strive_LiJiaLe
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
KMP原理
文章目录概念KMP原理通过交集进行移动PMT数组模式串的交集next数组代码概念前缀:字符串A和B,A=B+S,S非空,则B为A的前缀。后缀:A=S+B,S非空,则B为A的后缀。PMT:前缀集合和后缀集合的交集中,最长元素的长度部分匹配表:PMT值集合,字符串所有前缀的PMT值prefix:每一个下标位置对应一个PMT值,组成的数组next:prefix向右移一个下标位置,组成next数组下面的图看不懂不要紧,看完原理就懂了!例如:下标5:ABCABC前缀集合:A,AB,ABC,AB原创 2021-04-28 19:21:28 · 1654 阅读 · 5 评论 -
BM
坏字符规则主串与模式串对比,从模式串右端开始,如图,A与D失配,往前找,直到找到模式串的开头才相同,那么直接将模式串后移:与模式串的A对齐。减少两次移动。好后缀A与D失配,但BC相同,就称后缀BC为好后缀。接着从D向前找BC好后缀,发现:找到了将其对齐。减少两次移动。总结两种规则综合实验,那种移动的位数多,使用哪种。最坏的情况下,就会退化为BF暴力算法时间复杂度:O(n/m) 最坏:O(m*n)...原创 2021-04-28 14:00:04 · 142 阅读 · 0 评论