字符串搜索算法

Posted z-sm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串搜索算法相关的知识,希望对你有一定的参考价值。

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

 

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

KMP算法

 

Boyer-Moore算法

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

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

以上是关于字符串搜索算法的主要内容,如果未能解决你的问题,请参考以下文章

Rabin-Karp 字符串搜索算法

KMP算法

PHP实现用于模式搜索的朴素算法(字符串匹配算法)

如何使用 notepad++ 搜索 16 位长字符串(Luhn 算法)?

Java中的字符串搜索算法

搜索文本中多个字符串之一的有效算法?