需要一种有效的方法来搜索以下特定要求

时间:2009-11-09 20:00:00

标签: hash search bloom-filter

我必须在包含文件的目录中搜索给定的文件名(比如说Keyword)。如果只搜索很少的关键字,我可以使用常规搜索(比如创建一个驻留在指定目录中的文件名数组,然后使用给定的关键字搜索每个文件名)。由于我需要动态搜索大量关键字,因此使用常规搜索效率不高。我有几个想法:

1.使用散列(但不清楚如何设计)

2.使用Bloom过滤器进行搜索(请谷歌,如果你不知道它,它的工作非常有趣!):使用布隆过滤器的问题是“假阳性是可能的,但是假阴性不是”。我可能会错过一些结果......

1 个答案:

答案 0 :(得分:1)

在搜索之前,请创建所有正面匹配的trie

创建trie将取O(n),其中n是单词数。

要搜索,请尝试将该字符与特里匹配。查找在O(m)中完成,其中m是要查找的单词的长度

总运行时间:O(n + nm)=> O(nm)找到所有单词。