特定のセットがセットの完璧なサブセットである場合、見つけるためのより良いアプローチは何ですか?与えられたサブセットがソートされていない場合は何ですか?

StackOverflow https://stackoverflow.com/questions/2899317

  •  04-10-2019
  •  | 
  •  

質問

特定のセット(アンソート)がメインセットの完璧なサブセットであるかどうかを見つけるための最良のアプローチは何ですか。プログラムでいくつかの検証を行うことができました。そこでは、クライアントリクエストセットを登録された内部機能セットと比較することができました。

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

何か案が?

よろしく、

マイクロカーネル

役に立ちましたか?

解決

選択した言語が既にJavaが行っているように、「セットに含まれる」メソッドを備えたセットクラスを実装していないと仮定します ハッシュセット...

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

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

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

他のヒント

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

内部機能セットを知っているので、 完璧なハッシュ関数 クライアントリクエストセットの要素をテストします。

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