私は C++ でアプリケーションを作成しています。ここでは、プライオリティ キューに対して O(1) Dequeue 操作を行うことが重要ですが、Enqueue の複雑さはそれほど重要ではありません (もちろん n^2 または 2^n にならない限り) 。
最初は連結リストを使っていました。これはデキュー (O(1)) に非常に適していて、エンキューの複雑さも良好でした。唯一の問題は、それをソートすることでした。O(n)の複雑さで挿入ソートを使用すると、私のニーズに合ったという事実ではありません。しかし、リンクされたリストをソートするのは面倒です。ゆっくりでした。
ベクトルはまったくダメです。Dequeue は O(n) で、すべての要素を 1 つ後ろに移動します。エンキューはまだ O(n) ですが、はるかに高速です。
よりパフォーマンスの高い方法を提案できますか? ありがとう。