検索

ホームページ  >  に質問  >  本文

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

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

黄舟黄舟2828日前798

全員に返信(5)返信します

  • 高洛峰

    高洛峰2017-04-17 14:45:26

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

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

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

    返事
    0
  • PHP中文网

    PHP中文网2017-04-17 14:45:26

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

    返事
    0
  • PHP中文网

    PHP中文网2017-04-17 14:45:26

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

    返事
    0
  • 迷茫

    迷茫2017-04-17 14:45:26

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

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-17 14:45:26

    C++ STL で set を使用する

    返事
    0
  • キャンセル返事