次のセット操作を時間と空間の両方で効率的にサポートするデータ構造はどれですか?
- 連合
- 違い
- ismemberof
- 追加
- 消去
これらの操作を行うための3つの異なる方法を考えることができます。2つのセットがあり、それらのサイズは両方ともNであると仮定します。
ビット配列:
1. O(N) 2.O(N) 3.O(1) 4.O(1) 5.O(1)
ハッシュ表:
1. O(N) 2.O(N) 3.O(1) 4.O(1) 5.O(1)
注文したツリー:
1. O(NlogN) 2.O(NlogN) 3.O(logN) 4.O(logN) 5.O(logN)
ビット配列とHashTableは高速ですが、メモリの使用量が多すぎます。順序付きツリーは低速ですが、消費するメモリが少なくなります。
注意:セットには、浮動小数点数や文字列など、整数以外の他のタイプが含まれる場合があります
他にどのようなデータ構造が高速で一般的であり、スペース効率が良いですか?