暇なときに興味深いアルゴリズムについて読んでいたところ、凸包トリック アルゴリズムを発見しました。このアルゴリズムを使用すると、特定の x 座標上の平面内の複数の線の最大値を計算できます。この記事を見つけました:
http://wcipeg.com/wiki/Convex_hull_trick
ここで著者は、このアルゴリズムの動的バージョンは対数時間で実行されると述べていますが、証拠はありません。行を挿入するとき、彼の隣人のいくつかをテストしますが、そのような挿入によってO(log N)
すべての行をテストできるのはどうしてなのかわかりません。N
それは正しいですか、それとも何かを見逃しましたか?
更新:この質問はすでに回答されています。興味深いものは以下の残りです
- どうすれば削除できますか?
つまり...行を削除すると、船体全体をリセットするためにおそらく以前の行が必要になりますが、そのアルゴリズムは、新しい行を挿入するときに、不要な行をすべて削除しています. - 上記のような問題を解決するための別のアプローチですか(または同様の問題、たとえば、挿入、削除、xポイントまたは特定の範囲での最大値の検索などのクエリの管理など)
前もって感謝します!