私が探していたデータ構造は、パラメトリックヒープと呼ばれています。つまり、各キーが固定キーではなく線形関数(線)であるヒープ。query(x)
動作に相当上述find-min(x)
パラメトリックヒープの動作。動的ヒープと呼ばれる関連データ構造があり、これは、パラメーターtimeが順方向にのみ進行するパラメトリックヒープです。つまり、find-min
()クエリをすると、場合にのみ()を要求できます。、T 2 、T 2 ≥ T 1t1find-min
t2t2≥t1
「誰か」によって観察されるように、パラメトリックヒープの問題は、点線の双対性によって動的な平面凸包に還元できます。
この問題を解決するほとんどの論文では、半動的な「削除のみ」のデータ構造を使用し、BentleyとSaxeの動的化手法を使用して、データ構造を変換して挿入もサポートしています。(JL BentleyおよびJB Saxe、分解可能な検索の問題。I :静的から動的への変換)このタイプの変換がどのように機能するかの概要については、J ffeの講義ノートϵも参照してください。
この領域での古典的な結果は、Overmarsとvan Leeuwenによるメンテナンスであり、クエリ時間と(最悪の場合)更新時間を達成します。この問題の解決策を実装したい場合は、これがバージョンです。O (log 2 n )O(logn)O(log2n)
しかし、その後、古典的な結果に対していくつかの理論的な改善がありました。FOCS 99では、Chanの論文
更新のための償却時間を含むデータ構造を提供しました。O(log1+ϵn)
その後、次の著者は、(独立)に時間制限を向上させる欠失およびのためのの挿入のために。O (log n log log log n )O(lognloglogn)O(lognlogloglogn)
O(logn)
最近、Chanは動的な平面凸包クエリに関連する他の結果を示しました。「クエリラインと交差する凸包のエッジを見つけることができるように平面内のn点のセットを維持するための完全に動的なデータ構造」。
Θ(logn/loglogn)O(lognloglogn)O(log2n)