字符串搜索算法

概念明确:被匹配串、匹配串。如从cbabce找ab,前者和后者分别称为被匹配串、匹配串。

最容易想到的方法:从首字母开始,逐个比较下去。一旦发现有不同的字符就停止并将这个匹配串后移一位,然后从头开始进行下一次比较。这样,就需要将字串中的所有字符一一比较。

KMP算法

Boyer-Moore算法

基于的事实:对于每一次失败的匹配尝试,跳过尽可能多的无法匹配的位置。

复杂度:O(n+k),且k越大(即搜索串)越长,速度越快,因为能跳过越多的无无法匹配的字符从而减少比较次数

猜你喜欢

转载自www.cnblogs.com/z-sm/p/11934551.html