字符串匹配算法之KMP&Boyer-Moore
2013-09-08 16:05
381 查看
KMP&Boyer-Moore
KMP算法是通过分析子串,预先计算每个位置发生不匹配的时候所需移动的下一个位置,直到达到字符串的末尾。KMP&Boyer-Moore算法是通过"字符串"与"搜索词"头部对齐,从尾部开始比较的一种方法。
KMP
对于两个字符串:1.用短的字符串的第一个字符开始依次与另外一个字符串进行比较
2.如果相同,继续比较下一位置的字符,否则,向后移动一定的距离(已经匹配上的字符个数-已经匹配字符串前缀和后缀对称的位数)
3.直到字符串的最后一位
Boyer-Moore
各种文本编辑器的"查找"功能(Ctrl+F),就是采用的这种算法。算法思想却是很简单啊!与KMP不同,它是按照字符串的反向进行比较。
1.用短的字符串的第一个字符与另外一个字符串的起始位置对齐,比较最后一个字符
2.如果相同,继续比较前一个位置的字符,否则,移动一定的距离(不匹配字符个数-不匹配字符在短字符串中的上一次出现的位置)
参考:
http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.htmlhttp://www.ruanyifeng.com/blog/2013/05/boyer-moore_string_search_algorithm.html
相关文章推荐
- 浅谈字符串匹配的几种算法(KMP,Boyer-Moore)
- Boyer-Moore(BM)算法,文本查找,字符串匹配问题
- 字符串匹配算法 Boyer-Moore
- 字符串匹配算法 之 (Horspool )Boyer-Moore-Horspool
- 字符串匹配算法之Boyer-Moore
- 字符串匹配的 Boyer-Moore 算法
- 字符串匹配算法,Boyer-Moore 算法
- 字符串匹配的 Boyer-Moore 算法
- BM(Boyer-Moore)字符串匹配算法的实现(一种有效常用的字符串匹配算法)
- 字符串匹配算法 之 BM(Boyer-Moore)
- 字符串匹配算法之Boyer-Moore-Horspool Algorithm
- 高效字符串匹配之Boyer-Moore & Rabin-Karp
- 字符串匹配算法之"Boyer Moore"
- 字符串匹配算法之 ---- Boyer-Moore 算法
- Java实现 字符串匹配 KMP 算法
- BM和KMP字符串匹配算法学习
- 字符串匹配和 KMP 算法
- 算法学习之字符串匹配 KMP 算法(一)(原理介绍)
- 数据结构与算法之KMP 字符串匹配
- 字符串匹配「 KMP 算法 」