c++ - n个数,要求插入,查找最大最小值,删除最大最小值的时间复杂度都限制在O(log2n),应该用什么算法?
黄舟
黄舟 2017-04-17 14:43:26
0
5
783

n个数,要求插入,查找最大最小值,删除最大最小值的时间复杂度都限制在O(log2n),应该用什么算法和数据结构?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全員に返信(5)
小葫芦

上記の 2 つの回答の出発点は異なります。

バランスのとれた二分木も実行できますが、元のシーケンスはソートされます。
C++ では、set と map の両方が要件を満たすことができます。

線分ツリーは、並べ替えることなく間隔の最大値または最小値を見つけることができます。
利用可能な既製のデータ構造はありません。テンプレートを自分で作成できます。

いいねを押す +0
洪涛

バランスの取れたバイナリ ツリーを使用する

いいねを押す +0
洪涛

バランスの取れたバイナリ ツリーを使用するにはどうすればよいでしょうか。これは可能ですが、最大値と最小値のみの場合は、既成の heap を使用するだけで済みます。 C++ のデータ構造。STL の priority_queue です。

いいねを押す +0
迷茫

線分ツリーは解決できます...

いいねを押す +0
Peter_Zhu

C++ STL で set を使用する

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート