Tag: 字符串匹配

strstr比算法快?

我有一个21056字节的文件。 我在C中编写了一个程序,将整个文件读入缓冲区,然后使用多个搜索算法在文件中搜索82个字符的标记。 我已经使用了“精确字符串匹配算法”页面中所有算法的实现。 我用过:KMP,BM,TBM和Horspool。 然后我使用strstr并对每个人进行基准测试。 我想知道的是,每次strstr优于所有其他算法。 有时候唯一更快的是BM。 不应该是最慢的吗? 这是我的基准代码,其中包含基准测试BM的示例: double get_time() { LARGE_INTEGER t, f; QueryPerformanceCounter(&t); QueryPerformanceFrequency(&f); return (double)t.QuadPart/(double)f.QuadPart; } before = get_time(); BM(token, strlen(token), buffer, len); after = get_time(); printf(“Time: %f\n\n”, after – before); 有人可以向我解释为什么strstr优于其他搜索算法吗? 如果需要,我会根据请求发布更多代码。