我在包含文件的目录中搜索指定的文件名(让说关键字)。如果要搜索只有几个关键字有,我可以使用常规的搜索(如创建居住在指定目录下的文件名的数组,然后搜索每个文件名与给定的关键字)。因为我需要动态搜索非常大量的关键字,它不是有效的搜索使用规则。我有几个想法:

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

2,采用布隆过滤器搜索(谷歌请,如果ü不知道这件事,它的工作是非常有趣!):使用布隆过滤器问题是“误报是可能的,但是假阴性是不是”。我可能会错过一些成果....

有帮助吗?

解决方案

在搜索,创建线索所有阳性匹配。

创建线索将需要O(n),其中n为字的数量。

要进行搜索,试图对线索词相匹配。望式窗口在O(米)来完成,其中m是长度的字来查找的

总运行时间:为O(n + nm)的=> O(nm)至找到所有的话

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top