KMP算法——KMP(Knuth-Morris-Pratt) 克努特—莫里斯—普拉特 操作
主要作用:字符串查找算法,常用于大型一個(gè)文本字符串中找一個(gè)模式字符串的出現(xiàn)文職。此算法由三人于1977年聯(lián)合發(fā)表——Donald Knuth——唐納德·克努特,Vaughan Pratt——沃恩·普拉特,James H. Morris——詹姆斯·H·莫里斯
我們先看最簡單的解決思路:
例如:
我們說此種算法為暴力匹配算法。
下面分析一下:
發(fā)現(xiàn)問題,用KMP算法解決這樣的問題。
KMP關(guān)鍵在next數(shù)組的分析和應(yīng)用:
代碼如下:
新的問題出現(xiàn),需要分析和解決。
優(yōu)化后的關(guān)鍵代碼:
此文為KMP算法的展示,很多人都知道KMP算法,也會KMP算法,重點(diǎn)在于想讓更多的人知道這一算法,字符串檢索算法中最厲害的算法。