1

特定のセット(ソートされていない)がメインセットの完全なサブセットであるかどうかを確認するための最良のアプローチは何ですか. クライアントの要求セットと登録済みの内部機能セットを比較するために、プログラムでいくつかの検証を行う必要がありました。

内部機能セットをソートし (一度登録すると変更されません)、クライアントの要求セット内の各要素に対してバイナリ検索を行うことを考えました。それは私が得ることができる最高のものですか?より良いアプローチがあるのではないかと疑っていました。

何か案が?

よろしく、

マイクロカーネル

4

3 に答える 3

3

選択した言語が、JavaがHashSetで行うように、「セットに含まれる」メソッドを持つセットクラスを実装していないと仮定します...

良いアプローチは、ハッシュマップ(別名ハッシュ、別名連想配列)を使用することです。

スーパーセットが大きすぎない場合は、大きい方のセットの各オブジェクトを真の値にマッピングするハッシュマップを生成します。

次に、サブセット内の各要素をループします。生成されたハッシュマップで要素を見つけてください。失敗した場合、小さなセットはpeoperサブセットではありません。失敗せずにループを終了すればそうです。

于 2010-05-24T18:39:49.567 に答える
1

セット内の要素の数によって異なります。より大きなセットの場合、通常、メインセットにハッシュセットを使用すると、最高のパフォーマンスが得られます。

于 2010-05-24T18:41:29.113 に答える
0

内部機能セットがわかっているので、完全なハッシュ関数を使用してクライアント要求セットの要素をテストできます。

于 2010-05-24T18:45:42.700 に答える