为啥要用kmp算法,有什么依据嘛

数据量大的时候使用KMP算法,大大加快时间,自不用说啦。O(n)的时间复杂度


看了一堆博客介绍。。才懂了:因为字符串的一个字串,串头和串尾可能是重复的,,就是前缀和后缀重合了

比如

为啥要用kmp算法,有什么依据嘛_第1张图片

上一排 红框 左边这个ABCDAB 的前缀和后缀都有AB,那要是ABCDAB不能匹配的话,直接跳过ABCD到红框前面的两个字母AB开始匹配不就结啦。朴素匹配是一次挑一个坑,KMP就是为了少条坑,预先分析好结构啦。这样更有利于多次对模式串的比较。一次预处理,用多次。

你可能感兴趣的:(算法,KMP)