導航:首頁 > 源碼編譯 > 數據結構中kmp演算法

數據結構中kmp演算法

發布時間:2025-03-28 19:03:30

❶ kmp演算法什麼意思

KMP演算法之所以叫做KMP演算法是因為這個演算法是由三個人共同提出來的,就取三個人名字的首字母作為該演算法的名字。其實KMP演算法與BF演算法的區別就在於KMP演算法巧妙的消除了指針i的回溯問題,只需確定下次匹配j的位置即可,使得問題的復雜度由O(mn)下降到O(m+n)。
在KMP演算法中,為了確定在匹配不成功時,下次匹配時j的位置,引入了next[]數組,next[j]的值表示P[0...j-1]中最長後綴的長度等於相同字元序列的前綴。
對於next[]數組的定義如下:
1) next[j] = -1 j = 0
2) next[j] = max(k): 0<k<j P[0...k-1]=P[j-k,j-1]
3) next[j] = 0 其他
如:
P a b a b a
j 0 1 2 3 4
next -1 0 0 1 2
即next[j]=k>0時,表示P[0...k-1]=P[j-k,j-1]
因此KMP演算法的思想就是:在匹配過程稱,若發生不匹配的情況,如果next[j]>=0,則目標串的指針i不變,將模式串的指針j移動到next[j]的位置繼續進行匹配;若next[j]=-1,則將i右移1位,並將j置0,繼續進行比較。

與數據結構中kmp演算法相關的資料

熱點內容
程序員怎麼學美術 瀏覽:376
程序員被公司裁員還能做嗎 瀏覽:690
認證信息應當加密 瀏覽:439
計算機網路技術pdf 瀏覽:547
安卓如何撤銷操作 瀏覽:199
趕集app如何找租屋 瀏覽:66
雙核Mac可以寫編程嗎 瀏覽:352
編程求n的n次方 瀏覽:566
如何看淘寶綁定了哪些app 瀏覽:575
自由幻想為什麼連接伺服器失敗 瀏覽:46
sql替換的命令 瀏覽:758
如何安裝多台伺服器 瀏覽:896
簡愛中央編譯出版社 瀏覽:721
單片機控制系統需要PC嗎 瀏覽:859
日本加密貨幣草案 瀏覽:946
如何做app軟體賺錢 瀏覽:819
編譯原理考研復試面試題 瀏覽:555
什麼叫網路加密線路 瀏覽:867
apex編譯著色器慢 瀏覽:676
免費電子台賬編譯軟體 瀏覽:213