2009-08-28 5 views
2

フルキーまたはキーの一部に基づいてルックアップする必要があります。フルキーまたはキーの一部に基づくルックアップをサポートするデータ構造

私は、10,20,30,40または20,30を検索することができるようにしたい10,20,30,40 11,12,30,40、12,20,30,40

のようなキーを格納可能性があります、40時間this..best達成するための最良のデータ構造は何

私たちのプログラミング言語は、オープンソースプロジェクトのためのJava..anyポインタが...事前に

感謝を理解されよう..です

答えて

1

それらが一緒に働くことでしょう実際の数字だった場合、私は」 d指定されたインデックスにインデックスを含むすべてのレコードの配列が含まれている配列を使用します。実際の数値が大きい場合は、同じ方法でハッシュテーブルを使用します。

だから構造は(空のインデックスが配列の実装の場合には、省略さ)のようになります。

10 => ((10,20,30,40)), 
11 => ((11,12,30,40)), 
12 => ((11,12,30,40), (12,20,30,40)), 
20 => ((10,20,30,40), (12,20,30,40)), 
30 => ((10,20,30,40), (11,12,30,40), (12,20,30,40)), 
40 => ((10,20,30,40), (11,12,30,40), (12,20,30,40)), 

それは(あなたの検索が包括的(ORベース)または排他的であるかどうか私には明確ではないですし、ベース)が、あなたは、検索集合の各要素のレコード群を検索いずれかの方法。包括的な検索のために、あなたは彼らの労働組合を見つけ、そして排他的な検索のために、あなたは彼らの交差点を見つけます。

0

他の懸案事項(スペースなど)よりも検索時間を気にしていたので、ハッシュテーブルを使用して、サブキーごとにアイテムを何度か入力することをお勧めします。だから( "10,20,30,40"、mydata)を入れて( "20,30,40"、mydata)などを入れてください(もちろんこれはメソッドになります。手動でputを何度も呼び出す)。

関連する問題