サイズ1の A(0 indexed) という配列があります。
インデックス k1 (k1>=0) と A.size()-1 (つまり、最後の要素) の間の配列 A で最小値を見つけたいと考えています。
次に、配列の最後に値: (指定された範囲の最小要素 + いくつかの「ランダムな」定数) を挿入します。次に、インデックス k2 と A.size()-1 の間の最小値を見つけるための別のクエリがあります。最後に値 : (指定された範囲内の最小値 + 別の「ランダムな」定数) を挿入します。私はそのような多くのクエリを実行する必要があります。
たとえば、N 個のクエリがあるとします。単純なアプローチでは O(N^2) かかります。
配列が静的ではないため、セグメント ツリーを使用できません。しかし、賢明な方法は、サイズ N+1 配列のセグメント ツリーを作成することです。未知の値を無限大で埋めます。これにより、O(Nlog N) の複雑さが得られます。
NlogN の複雑さ、または N の他の方法はありますか?