KMP算法:
KMP算法主要用於判斷字符串f是不是另一個字符串O的子串。利用f串的next數組或者nextval數組可以實現性能的大幅度提高。主要有兩個步驟:
1、對f串,求其next數組或者nextval數組,複雜度O(m);
2、將f串元素依次與O串元素比較,出現不匹配的元素,假設是f[j],則將f串向前移動next[j]位,並從f[next[j]]處開始將f串元素繼續與O串元素比較,複雜度O(n+m)。
以下是我在學習KMP算法的過程中看過的非常不錯的文章,現在分享給大家:
從原理上講解KMP算法最清楚的文章,英文,沒有代碼實現細節。
講解得很清楚明瞭,中文,沒講代碼實現。
(3)、http://m.baidu.com/from=2001a/bd_page_type=1/ssid=0/uid=0/pu=usm%400%2Csz%401320_1003%2Cta%40iphone
講解得最全面還有代碼實現的詳細解釋。
KMP時間複雜度分析。
除了KMP之外,其他的字符串匹配算法講解。