信息也是越来越多,字符串匹配算法起着非常 重要的作用。
有kmp算法,索引法,还有什么拖拉机法等等。
本人就参考了索引法。索引法主要将关键词排序好,然后再匹配。
测试结果:2000条关键词,110K文章,匹配140毫秒。
21万条关键词,110K文章,匹配9.845秒。
以上结果是查出总共有多少个关键词出现,如果只是查是否有那测试结果:匹配16毫秒就OK了。
程序演试:
http://files.cnblogs.com/mmpc/%E6%B5%B7%E9%87%8F%E5%85%B3%E9%94%AE%E8%AF%8D%E5%8C%B9%E9%85%8D.rar
感谢Sumtec的回复,本人修改了部份索引,从9.845秒提高到1:688秒。
已改的程序演试:
-------------------------------------------
程序再次提高。110K只用了656毫秒
提高的程序演试:
程序再度提高。110K只用了359毫秒,包含关系的用了203毫秒
包含关系是这样的:文章出现...不值钱... 关键词有“不值”,“值钱”,“不值钱”,那程序只找“不值钱”这关键词
提高的程序演试:
昨晚想到关键词结合2分查找,理论应该从最新的21万关键词110K文章203毫秒进入100毫秒以内的大关。有空再写一个演示程序给大家。