BF算法(模式匹配算法)
温馨提示:这篇文章已超过541天没有更新,请注意相关的内容是否还可用!
BF算法
模式匹配算法
BF(BruteForce)算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。
中文名 | BF算法 |
BF | Brute 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算法并行化及性能优化·知网空间