strstr竟然把KMP还快!
测试了一下在网页源码中查找关键字,结果发现strstr竟然把KMP快几倍...这是为什么
[解决办法]
kmp只是理论最坏线性。乃网页里是不会遇到什么用aaaaaaaaaab匹配aaaaaaaaaaaaaaaaaaaaaaaaaaaab这种事情的。而且朴素算法更有利于cache hit。
[解决办法]
[解决办法]
这个KMP是楼主写的吧,呵呵。
还有测试的话,不要测特例。比如字符串的长度啊啥的都得有些要求。
[解决办法]
LZ可以试试Sunday的速度,作为关键字匹配来讲,应该更快。
[解决办法]
请问楼主用什么语言?要注意虚拟机效率差异。
[解决办法]
个人觉得LZ在用DEBUG版测试, 或者KMP写的太杯具了。。。偶实测的是大约是 strstr 的两倍左右....
[解决办法]
需要进行优化,不然strstr快一点也不奇怪,我以前写过BM算法的字符串匹配,没优化前strstr快,优化后BM算法快多了。
[解决办法]
如何优化,这个要求真的挺高。
除非是真的是底层要求这么高的性能。
否则一般还是不优化吧。
[解决办法]
看LZ的要求似乎是多模式匹配呀,最近问这个问题的人很多,看看Trie或后缀树吧
[解决办法]
[解决办法]
kmp的复杂度导致处理小规模问题或者符合某些模式的问题的时候,会比 strstr 慢
即便是更快的 bm 以及其改进算法,在这些情况还是比 strstr 慢。
计算机的速度,很多时候要考虑机器的实际运作情况吧,好比很多情况,快排比冒泡要慢一样
[解决办法]
VS2008下调试后发现strstr成了汇编,效率比3GL语言高。
这就是关键答案。
[解决办法]
[解决办法]
学习学习