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)。

相關詞條

相關搜索

其它詞條