本文由码农场同步,最新版本请查看原文:http://www.hankcs.com/program/algorithm/wu-manber.html

AC自动机中,转移的最小单位是一个字符。也就是说,匹配后只能移动一个字符,复杂度是线性的$O(n)$。然而线性并非最快,Boyer-Moore算法在匹配后可以跳过多个字符,比线性还快。据说在实践中,利用Boyer-Moore优化的AC自动机总是更快。来熟悉一下Boyer-Moore算法的基本思路。假设模式串的长度为$m$,母文本为$t$。算法不是去母文本中找模式串,而是在模式串中从右到左找文本的第 $m$个字母$t_m$。如果没找到,那么就可以在母文本中跳过$m$个字符,继续搜索$t_{2m}$。如果找到了...
继续阅读:码农场 » Wu Manber多模式匹配算法
原文链接:http://www.hankcs.com/program/algorithm/wu-manber.html