需要一种有效的方式对搜索以下specfic要求
-
19-09-2019 - |
题
我在包含文件的目录中搜索指定的文件名(让说关键字)。如果要搜索只有几个关键字有,我可以使用常规的搜索(如创建居住在指定目录下的文件名的数组,然后搜索每个文件名与给定的关键字)。因为我需要动态搜索非常大量的关键字,它不是有效的搜索使用规则。我有几个想法:
1.使用散列(但并不清楚如何设计它)
2,采用布隆过滤器搜索(谷歌请,如果ü不知道这件事,它的工作是非常有趣!):使用布隆过滤器问题是“误报是可能的,但是假阴性是不是”。我可能会错过一些成果....
解决方案
在搜索,创建线索所有阳性匹配。
创建线索将需要O(n),其中n为字的数量。
要进行搜索,试图对线索词相匹配。望式窗口在O(米)来完成,其中m是长度的字来查找的
总运行时间:为O(n + nm)的=> O(nm)至找到所有的话
不隶属于 StackOverflow