我必须在数据块中搜索大约100个单词(大约20000个块),每个块包含大约20个单词。应按照匹配数的降序返回块。蛮力技术非常麻烦,因为你必须逐个搜索所有100个单词,然后以复杂的方式组合相关搜索的数量。是否有其他算法允许同时搜索多个单词并存储匹配单词的数量?
谢谢
答案 0 :(得分:1)
您可以使用Aho-Corasick算法一次搜索所有100个字。有几种可用的实现here in SO和github。
答案 1 :(得分:0)
为什么不考虑使用多线程来存储结果?创建一个大小等于块数的数组,然后每个线程计数一个块中的结果,然后线程将结果写入数组中的相应条目。稍后您按降序对数组进行排序,然后得到结果。