KMP学习

一.KMP算法简介

  Knuth-Morris-Pratt 字符串查找算法,简称为 “KMP算法”,常用于在一个文本串S内查找一个模式串P 的出现位置,这个算法由Donald Knuth、Vaughan Pratt、James H. Morris三人于1977年联合发表,故取这3人的姓氏命名此算法。

二.算法流程

  假设现在文本串s匹配到i位置,匹配串匹配到j位置

      >>若当前字符匹配成功(即s[i]==p[i]),都令i++,j++,继续匹配下一个字符

  >>若当前字符匹配失败(即s[i]!=p[i]),则令i不变,j=next[j]。此举意味着失配时,模式串p相对于文本串s向右移动了j-next[j]位

  next数组各值的含义:代表当前字符之前的字符串中,有多大长度的相同前缀后缀

三.算法实现

四.参考

http://blog.csdn.net/v_july_v/article/details/7041827

http://blog.csdn.net/tkd03072010/article/details/6824326

posted @ 2015-04-22 15:10  hwu_harry  阅读(124)  评论(0编辑  收藏  举报