詳解字串的快速匹配演算法 KMP

2021-08-31 19:01:06 字數 515 閱讀 7747

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!

在字串匹配演算法裡,有兩種較為常見的方式,bf 演算法與 kmp 演算法。

bf 演算法是指將主串的第 i 個字元與模式串的第1個字元進行比較,如果相等便繼續進行比較操作;若不匹配時,回溯到主串的第 i+1 個字元繼續與模式串的第1個字元進行比較,直到結果出現。

而 kmp 演算法則是利用匹配失敗後的資訊,儘量減少模式串與主串的匹配次數來實現快速匹配,當出現匹配不相等時,不需要回溯,只需利用已經得到的匹配資訊,將模式串向右滑動盡可能遠的距離,然後接著繼續進行比較即可。

本場 chat 內容如下:

介紹簡單模式匹配演算法(bf 演算法)與 kmp 演算法的差異;

以具體的例子來講解 kmp 演算法。

閱讀全文:

給我老師的人工智慧教程打call!

KMP演算法 字串快速匹配

kmp演算法的實現 最近學習了資料結構中乙個重要的內容 字串.涉及到乙個重要也是難理解的演算法 kmp演算法,即字串快速匹配模式串的演算法.在這裡寫一下心得體會,以便後來者參考.在開始之前,還是先講一講樸素的字串匹配演算法 暴力搜尋.先講幾個基本概念 所謂暴力搜尋,就是從主串和模式串開頭字元開始,乙...

KMP演算法 字串的快速匹配

先了解一下字串匹配的樸素模式匹配 b f演算法 當模式串中x匹配到字串z時,比較不等,則模式串右移一位,此時指標也跟著回到模式串的初始位置 如下圖所示 這個指標的移動叫做回溯。為了消除這種回溯,提高執行效率,於是有了kmp演算法。kmp演算法 指標從模式串開頭移動,當匹配到z x時,尋找子串xzzx...

字串匹配演算法 KMP詳解

這兩天在看字串匹配演算法,第一次看到kmp演算法的時候覺得很難。於是上網搜分析,網上講kmp的演算法很多,只是好像很多都講的雲裡霧裡的,不甚清晰。後來想想還是找教材看看,第一回看的是 演算法 第四版,其實沒看懂 於是再找來clrs看,恍然大悟,果然還是clrs 好。本文主要是梳理一下整個思路,盡自己...