BF算法_bf算法是什么意思

(67) 2024-08-05 18:01:01

 

BF算法,是Brute Force(暴力算法)的缩写。

批注:在某种极端情况下BF算法效率会非常低,假设主串的长度是m,模式串的长度是n,BF算法的最坏时间复杂度是O(mn)

比如一个字符串A 一个字符串B,判断出B是否是A的子串,且返回在A中第一次出现的位置。

为了统一概念,我们把字符串A称为主串,把字符串B称为模式串

BF解法: 我们从主串的首位开始,把主串和模式串的字符逐个比较,如果主串的首位字符和模式串的首位字符相匹配,则继续比较主串和模式串的下一位,    如果不匹配,我们把模式串后移一位对齐主串的第二位,继续比较,直到模式串中的字符和主串中的字符匹配且顺序位置一致。

例:1.我们从主串的首位开始,把主串和模式串的字符逐个比较:

BF算法_bf算法是什么意思 (https://mushiming.com/)  第1张

显然,主串的首位字符是a,模式串的首位字符是b,两者不匹配。

2.我们把模式串后移一位,从主串的第二位开始,把主串和模式串的字符逐个比较:

BF算法_bf算法是什么意思 (https://mushiming.com/)  第2张

主串的第二位字符是b,模式串的第二位字符也是b,两者匹配,继续比较:

THE END

发表回复