我基本上是对一些高速字符串匹配算法进行基准测试,我遇到了一些.
向后非确定性DAWG(有向无环字图)Gonzalo Navarro和Mathieu Raffinot的匹配算法.请参阅"后缀自动机的位并行方法:快速扩展字符串匹配"
Horspool改进版的Boyer-Moore字符串搜索算法.请参阅"实用快速搜索字符串"
具有不匹配的Shift-Or算法
我还可以尝试其他更好的高速字符串匹配算法吗?
编辑:在类似的行中有另一个线程,它也有很好的引用
我知道有一些快速的字符串搜索算法,比如Boyer–Moore和Knuth–Morris–Pratt,它们的复杂度为 O(n+m),而简单的解决方案是 O(n*m)。
那么,最流行的工具链(gcc 和 Visual Studio)的 strstr() 实现是使用这些快速 O(n) 算法,还是使用简单的解决方案?