これは私の問題です。検索アルゴリズム階層と複数のフィルタ
私たちはいくつかのオブジェクトのリストAを持っており、各オブジェクトにはいくつかのフィールドがあります。フィールドの階層を のリストで検索する必要があります。私の質問は、これを行うための最善の最適化アルゴリズムは何ですか?
何を私が知っているをしていすることです:Aの検索で
ループトラフリスト、何もBの検索で
ループトラフリストを返さない場合は、何も検索に
ループトラフリストを返さない場合C.
の等...
が言うCは検索から何かを返し、私はその後、他のフィルタを適用D場合、DとE、それを呼び出す必要がありEが一致する場合はCを返します。
一致しない場合(DまたはE)、Fを検索して同じDおよびEも一致する必要があります。
リストAはサイズを変更でき、各オブジェクトのフィルタはに変更できることを考慮してください。
私の問題は、2つのオブジェクトを一致させるためにこの検索を行い、リストBの各オブジェクトに対してこの検索をリストAで行います。 問題はBが何千ものエントリを持つ可能性があるという問題です。 アルゴリズムを完了するまでに数時間かかることがあります。
申し訳ありませんが抽象的なもののために、私はこれが適切な場所であるかどうかわかりませんが、どんな助けもありがたいです。
私はJAVAでプログラミングしています。
おかげ
おかげで、便利になりました疑問、将来的にそれを使用しますが、それはこの問題には適用されないことを確認、私はそれについて話すのフィルタは、それらが同じであるが、大きくすることができるだけの場合ではありません私はいくつかの複雑さ、いくつかの全体のロジックを持っているフィルタを持っています。これはどんな意味がある場合、私は探しています何 は、ループトラフにするたびにせずにリストを検索することができ、アルゴリズムの探索木とリンクリストのいくつかの種類の混合物です。 – JaimeASV
あなたの条件のようなサウンドは 'arbitrary_hash_function(data)= value'のようになります。この場合、最適化できるものは何もありません。 – Sorin