導航:首頁 > 源碼編譯 > 演算法線性匹配

演算法線性匹配

發布時間:2025-09-02 18:47:23

㈠ 想知道bm是什麼意思呢

BM是一種匹配演算法

BM演算法被認為是亞線性串匹配演算法,它在最壞情況下找到模式所有出現的時間復雜度為O(mn),在最好情況下執行匹配找到模式所有出現的時間復雜度為O(n/m)。

BM演算法主要思想描述如下:

模式字元串的匹配順序是從右向左。

1、首先將P和T對齊,即p和t對齊。

2、然後匹配從模式字元串P的最右端字元開始,即判斷p[m]和t[m]是否匹配。

如果匹配成功,則向左移動判斷p[m-1]和t[m-1]是否匹配,如此循環下去;如果匹配不成功,則進行字元串滑移。

BM演算法的原理:

不同於樸素模式(brute-force search)的逐個字元對比,Boyer-Moore充分使用預處理 P的信息來盡可能跳過更多的字元。通常,我們比較一個字元串都是從首字母開始,逐個比較下去。一旦發現有不同的字元,就需要從頭開始進行下一次比較。

這樣,就需要將字串中的所有字元一一比較。Boyer-Moore演算法的關鍵在於,當 P的最後一個字元被比較完成後,我們可以決定跳過一個或更多個字元。如果最後一個字元不匹配,那麼就沒必要繼續比較前一個字元。

如果最後一個字元未在 P中出現,那麼我們可以直接跳過 T的n個字元,比較接下來的n個字元,n為 P的長度(見定義)。

如果最後一個字元出現在 P中,那麼跳過的字元數需要進行計算(也就是將 P整體往後移),然後繼續前面的步驟來比較。通過這種字元的移動方式來代替逐個比較是這個演算法如此高效的關鍵所在。

閱讀全文

與演算法線性匹配相關的資料

熱點內容
捷豹小型空氣壓縮機 瀏覽:549
綠盾文檔加密系統哪裡有賣 瀏覽:630
我的世界怎麼開掛在伺服器裡面 瀏覽:782
西門子自鎖正反轉編程圖 瀏覽:740
出國英語pdf 瀏覽:913
演算法線性匹配 瀏覽:667
山東省dns伺服器雲主機 瀏覽:549
安卓5g軟體怎麼隱藏 瀏覽:834
編譯內核空間不足開不了機 瀏覽:880
漢紀pdf 瀏覽:467
在哪裡下載國家醫保app 瀏覽:651
沒有與文件擴展關聯的編譯工具 瀏覽:421
我的世界反編譯mcp下載 瀏覽:15
安卓手柄下載什麼軟體 瀏覽:64
pushrelabel演算法 瀏覽:844
硬碟資料部分文件夾空白 瀏覽:612
cssloader的編譯方式 瀏覽:934
java面板大小 瀏覽:498
怎麼用命令方塊打出字體 瀏覽:495
台灣加密貨幣研究小組 瀏覽:291