JavaScriptでデータ構造として以下を作成します。jsでハッシュされたベクトル
注文した商品
各アイテムは、IDを有し、それが発見され、O(1)
容器のorededスライスをすることなく取得することができ、削除することができる容器元のコンテナを変更します。
項目
(1)
私は<item_id, position_in_array>
のアドレスmapingオブジェクト(b={}
)と<items>
の配列(a=[]
)を使用すると考えO中の特定の位置に挿入することができます。
他のアイデアはありますか?
オーダーされたコンテナがフェッチ操作または挿入操作のためにO(1)複雑さを持つことはできません... –
@FrédéricHamidi:はい、可能です。優先順位キューのさまざまな実装を参照してください。それは、私の答えは、一般的に不可能である理由を詳述しています。 – ninjagecko
@ ninjagecko、私の優先度キューの理解が正しい場合は、O(1)の中で最も高い(または最も低い)優先度の項目だけを取り出すことができます。任意の項目を取得することは、最高でもO(log n)です。 –