複製鏈接
請複製以下鏈接發送給好友

BM

(BM匹配算法)

鎖定
BM算法被認為是亞線性串匹配算法,它在最壞情況下找到模式所有出現的時間複雜度為O(mn),在最好情況下執行匹配找到模式所有出現的時間複雜度為O(n/m)。 [1] 
外文名
BM
類    別
匹配算法
BM算法主要思想描述如下
(1)模式字符串的匹配順序是從右向左:
(a)首先將P和T對齊,即p[0]和t[0]對齊;
(b)然後匹配從模式字符串P的最右端字符開始,即判斷
p[m]和t[m]是否匹配:
如果匹配成功,則向左移動判斷
p[m-1]和t[m-1]是否匹配,如此循環下去;如果匹配不成功,則進行字符串滑移。
(2)字符串滑移啓發式策略:
(a)壞字符移動啓發式策略
(b)好後綴移動啓發式策略
兩種策略的使用:如果同時滿足兩種策略使用條件時,選兩者中較大的作為模式串向右滑移的距離。
參考資料
  • 1.    郭晶晶,劉志全,楚秦等編著. C/C++算法從菜鳥到達人[M]. 2020