いくつかの要素のセットが与えられます、例えば:
int set1[5] {5601, 935, 4153, 2195, 422};
int set2[5] {5601, 935, 23, 44, 422};
int set3[5] {4205, 935, 4153, 2195, 15};
int set4[5] {4205, 589, 4015, 44, 422};
順序が重要な場合(つまり、1、2、3が2、1、3と異なる場合)、特定のセットを見つけるための効率的なアルゴリズムは何ですか?たとえば、次の場所を特定します。
int value[5] {5601, 935, 23, 44, 422};
考慮事項:
新しいセットの挿入コストは問題ではないため、検索時間を最適化するために、任意のデータ構造に保存できます。
セットには、それぞれ1〜1,000,000個の要素が含まれます(おおよそ、1〜1000個のセットがあります(これもおおよそ)。ただし、要素の数は、特定のセットのセットで常に同じになります(たとえば、1つである場合)。セットには10個の要素があり、すべてのセットには10個の要素があります)。
フォローアップの質問です。これをC++で実装するので、オープンソースのC ++ライブラリ(STL、Boost、QTが望ましいですが、検討します)に存在するかどうかにかかわらず、推奨されるアルゴリズムを調べたいと思います。他の人も)。