KMP演算法next陣列的手工計算方法
KMP是三位大牛:D.E.Knuth、J.H.Morris和V.R.Pratt同時發現的。其中第一位就是《計算機程式設計藝術》的作者!! KMP演算法要解決的問題就是在字串(也叫主串)中的模式(pattern)定位問題。說簡單點就是我們平時常說的關鍵字搜尋。模式串就是關鍵字(接下來稱它為P),如果它在一個主串(接下來稱為T)中出現,就返回它的具體位置,否則返回-1(常用手段)。
1.next陣列的計算方法
1.先求對應位置前面的F字串
2.求F字串中最長且相等的字首Fl與字尾字串Fr,並求出Fl或者Fr的長度
3.next對應位置的資料為Fl長度加1
計算如下圖所示