Javascript实现BF算法

BF算法

BF算法,即暴风(Brute Force)算法,是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。

模式匹配:子串的定位运算。在主串S中查找与模式T相匹配的子串。

算法复杂度分析

图解(来自网络)

Javascript实现BF算法_第1张图片

由于是穷举暴力解法,算法复杂度可想而知。

该算法最理想的时间复杂度 O(n),n 表示串 A 的长度,即第一次匹配就成功。

BF 算法最坏情况的时间复杂度为 O(n*m),n 为串 A 的长度,m 为串 B 的长度。例如,串 B 为 "0000000001",而串 A 为 "01",这种情况下,两个串每次匹配,都必须匹配至串 A 的最末尾才能判断匹配失败,因此运行了 n*m 次。

对于大量的数据来说,BF简直糟透了。

代码见我github :index_BF

一直在写KMP算法,但是在调试有问题。源代码也是在我GitHub放着,希望有大佬可以指点一下。

你可能感兴趣的:(Javascript学习,数据结构与算法)