字符串匹配算法:KMP

字符串匹配算法:KMP

Knuth–Morris–Pratt(KMP)算法是一種改進的字符串匹配算法,它的核心是利用匹配失敗後的信息,儘量減少模式串與主串的匹配次數以達到快速匹配的目的。它的時間複雜度是 O(m+n)

在這裏插入圖片描述

一般來說,暴力匹配時:
我們在進行每一輪匹配時,總是會重複對 A 進行比較。也就是說,對於 S 中的每個字符,我們都需要從 T 第一個位置重新開始比較,並且 S 前面的 A 越多,浪費的時間也就越多。假設 S 的長度爲 m,T 的長度爲 n,理論上講,最壞情況下迭代 m - n + 1 輪,每輪最多進行 n 次比對,一共比較了 (mn+1)×n(m - n + 1)\times n 次,當 m>>nm >> n 時,漸進時間複雜度爲 O(mn)O(mn)

力扣卡片解析→KMP

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章