質問

私は、ファイルを含むディレクトリに(キーワードを言わせて)指定したファイル名を検索する必要があります。検索する唯一のいくつかのキーワードがあった場合、私は(特定のキーワードで各ファイル名を検索し、指定したディレクトリに存在するファイル名の配列を作成するなど)通常の検索を使用することもできました。私は動的なキーワードの非常に大きな数を検索する必要があるので、その効率的ではない、通常使用して検索します。私はアイデアのカップルを持っています:

(それをどのように設計するかではなく、明確な)ハッシュを1.using

検索するための

2.Usingブルームフィルタ(uはそれについて知らない場合には、その作業は非常に興味深いです、グーグルください!):ブルームフィルタを使用する際の問題は、「偽陽性は可能ですが、偽陰性はありません」です。私はいくつかの結果を逃すかもしれない....

役に立ちましたか?

解決

検索する前に、href="http://en.wikipedia.org/wiki/Trie" rel="nofollow noreferrer">トライのすべての正の一致の

トライを作成すると、nは単語の数であり、O(n)をとる。

検索するには、トライに対する単語に一致するようにしてみてください。ルックアップすることは、mはルックアップをするために単語のの長さのであるO(メートル)で行われます。

の合計実行時間:すべての単語を見つけるO(N + NM)=> O(NM)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top