我在空閒時間閱讀了有趣的算法,我剛剛發現了凸包技巧算法,我們可以使用該算法計算給定x座標中平面上幾行的最大值。我發現這篇文章:動態凸包技巧
http://wcipeg.com/wiki/Convex_hull_trick
筆者在這裏說,該算法的動態版本在對數時間運行,但沒有證據。當我們插入一條線時,我們測試了他的一些鄰居,但我不明白如何通過這樣的插入來測試所有的N
行時它怎麼可能是O(log N)
。這是正確的還是我錯過了什麼?
UPDATE:這個問題已經回答了,將有趣的是下面
- 其餘部分,我們如何刪除?
我的意思是......如果我們刪除一條線,我們可能需要先前的線來重置整個船體,但是當插入一個新的線時,該算法將刪除所有不必要的線。 - 它是一個另一種方法,來解決類似上述問題(或類似的,例如像管理查詢插入,刪除,在X點或在給定範圍等找到最大)
謝謝提前!
謝謝,我現在明白了。但是對於我來說還是不清楚,我們如何處理像這樣的數據結構的查詢。通過查詢我的意思是插入和刪除集合中的行。 – porcupine