n个数,要求插入,查找最大最小值,删除最大最小值的时间复杂度都限制在O(log2n),应该用什么算法和数据结构?
高洛峰2017-04-17 14:45:26
上記の 2 つの回答の出発点は異なります。
バランスのとれた二分木も実行できますが、元のシーケンスはソートされます。
C++ では、set と map の両方が要件を満たすことができます。
線分ツリーは、並べ替えることなく間隔の最大値または最小値を見つけることができます。
利用可能な既製のデータ構造はありません。テンプレートを自分で作成できます。
PHP中文网2017-04-17 14:45:26
バランスの取れたバイナリ ツリーを使用するにはどうすればよいでしょうか。これは可能ですが、最大値と最小値のみの場合は、既成の heap
を使用するだけで済みます。 C++ のデータ構造。STL の priority_queue
です。