BF算法

BF算法

模式匹配算法
BF(BruteForce)算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。
    中文名:BF算法 外文名: 定义: BF:Brute Force 属于:普通的模式匹配算法 最坏情况:要进行M*(N-M+1)次比较

算法思想

首先S和T比较,若相等,则再比较S和T,一直到T[M]为止;若S和T不等,则S向右移动一个字符的位置,再依次进行比较。如果存在k,1≤k≤N,且S[k+1…k+M]=T[1…M],则匹配成功;否则失败。采用计算-加速的编程模型实现并行化,分析评价双缓冲、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[M]为止;若S和T不等,则T向右移动一个字符的位置,再依次进行比较。如果存在k,1≤k≤N,且S[k+1…k+M]=T[1…M],则匹配成功;否则失败。该算法最坏情况下要进行M*(N-M+1)次比较,时间复杂度为O(M*N)。下面是用C语言实现:intIndex(SStringS,SStringT,intpos){/*返回子串T在主串S中第pos个字符之后的位置。若不存在,则函数值为0。*//*其中,T非空,1≤pos≤StrLength(S)。

相关词条

相关搜索

其它词条