【发布时间】:2015-05-31 13:19:05
【问题描述】:
因此,我们有一组多个字符串,并希望优化算法来检查是否可以在输入文本中找到任何这些字符串。重要的是我们对找到所有匹配的字符串不感兴趣,找到一个就足够了。
我发现了这个:http://en.wikipedia.org/wiki/Aho%E2%80%93Corasick_string_matching_algorithm 看起来确实不错,但它找到了所有匹配的模式。如果我们不需要那些额外的信息,有没有办法更快地得到一些东西?
当然,我们可以在 Aho Corasick 算法找到第一个匹配模式时终止它,但是对于这类问题还有另一种更快的方法吗?
【问题讨论】:
-
字典搜索在 O(N) 左右运行,使内存总线饱和。或者,如果文件在磁盘上:I/O 通道。所以有效,无法改进。
标签: algorithm