数据结构拓展——KMP算法

yuanjunwei_10538 46 0 PDF 2019-09-14 12:09:19

在朴素的模式匹配算法中,当目标串和模式串的字符比较不相等时,进行下一次比较的是目标串本趟开始处的下一个字符,而模式串则回到起始字符,这种回溯显然是费时的。如果仔细观察,可以发现这样的回溯常常不是必须的。由D.E.Knuth、J.H.Morris和V.R.Pratt三人共同提出了一个改进的模式匹配算法,称为KMP算法。当某一位匹配失败时,可以根据已匹配的结果进行判断。当模式串中的第k位与目标串的第i位比较发生不匹配时,需要将模式串向右滑动到哪里继续与目标串的第i位进行比较?即目标串始终无须回溯,模式串返回到前面的什么位置,视情况而定。如图4-4所示的例子。KMP算法避免了不必要的主串回溯,减少了模式串回溯的位数,从而使算法

用户评论
请输入评论内容
评分:
暂无评论