KMP算法是通過分析子串,預先計算每個位置發生不比對的時候所需移動的下一個位置,直到達到字元串的末尾。KMP&Boyer-Moore算法是通過"字元串"與"搜尋詞"頭部對齊,從尾部開始比較的一種方法。
對于兩個字元串:
1.用短的字元串的第一個字元開始依次與另外一個字元串進行比較
2.如果相同,繼續比較下一位置的字元,否則,向後移動一定的距離(已經比對上的字元個數-已經比對字元串字首和字尾對稱的位數)
3.直到字元串的最後一位
各種文本編輯器的"查找"功能(Ctrl+F),就是采用的這種算法。
算法思想卻是很簡單啊!與KMP不同,它是按照字元串的反向進行比較。
1.用短的字元串的第一個字元與另外一個字元串的起始位置對齊,比較最後一個字元
2.如果相同,繼續比較前一個位置的字元,否則,移動一定的距離(不比對字元個數-不比對字元在短字元串中的上一次出現的位置)
本文轉自cococo點點部落格園部落格,原文連結:http://www.cnblogs.com/coder2012/p/3307751.html,如需轉載請自行聯系原作者