BF算法(模式匹配算法)

2023-01-28 52阅读

温馨提示:这篇文章已超过541天没有更新,请注意相关的内容是否还可用!

BF算法

模式匹配算法

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

中文名BF算法
BFBrute Force
属于普通的模式匹配算法
最坏情况要进行M*(N-M+1)次比较

算法思想

首先S和T比较,若相等,则再比较S和T,一直到T为止;若S和T不等,则S向右移动一个字符的位置,再依次进行比较。如果存在k,1≤k≤N,且S=T,则匹配成功;否则失败。采用计算-加速的编程模型实现并行化,分析评价双缓冲、Mailbox、DMA-list机制对BF算法性能的影响。结果显示,3种机制的单独应用都可以优化BF算法在CellBE上的并行处理性能,任意2种以及3种机制的综合应用都可以不同程度地进一步提升性能,其中3种机制的综合应用使性能达到最优。

该算法最坏情况下要进行M*(N-M+1)次比较,时间复杂度为O(M*N)。

举例说明:

S:ababcababa

T:ababa

基本内容

BF算法BF(BruteForce)算法核心思想是:首先S和T比较,若相等,则再比较S和T,一直到T为止;若S和T不等,则T向右移动一个字符的位置,再依次进行比较。如果存在k,1≤k≤N,且S=T,则匹配成功;否则失败。该算法最坏情况下要进行M*(N-M+1)次比较,时间复杂度为O(M*N)。下面是用C语言实现:intIndex(SStringS,SStringT,intpos){/*返回子串T在主串S中第pos个字符之后的位置。若不存在,则函数值为0。*//*其中,T非空,1≤pos≤StrLength(S)。

参考资料

1.Cell BE环境中BF算法并行化及性能优化·知网空间

目录[+]