データ属性を持つすべてのオブジェクトを効率的に検索できるデータ構造(Java組み込みのコレクションクラスを使用することをお勧めします)を探していますXより大きい。割り当てシステムの一部になります。例えば少なくとも属性があるオブジェクトを検索して使用するためのJavaデータ構造X
、私はいくつかの公共交通機関のバスとその能力を持っているとします
Bus 1: capacity 20
Bus 2: capacity 12
Bus 3: capacity 24
今、私は、次の割り当てをしたいと思い:
Group 1: 16 passengers
Group 2: 19 passengers
グループ1は、効率的にバス1を見つける必要があります(バス)1にグループを割り当てることができます。
グループ2は、バス1またはバス3を効率よく見つけ、そのバス1が占有されていることを確認し、そのグループをバス3
ここでどのようなデータ構造が必要ですか?
必要な容量を満たすバスを見つけるには、O(lg N)時間でバイナリ検索を行い、必要な人数に一致する最小容量を見つけ出し、O(N)その番号以上のバス。
最終的な割り当てを行うために、一致するバスを選択するにはどうすればよいですか?(たとえば、グループ2は既に占有されているバス1とバス3のどちらかを選択する必要がありますか?
一般的に、探しているJavaコレクションフレームワークの操作は 'TreeSet.tailSet'と' TreeMap .tailMap'を設定します。しかしそれがあなたが始める場所です。 –
@LouisWasserman:うん、 'TreeSet.tailSet()'は私が探していたものだった。ありがとうございました。 – stackoverflowuser2010