我在空闲时间阅读了有趣的算法,我刚刚发现了凸包技巧算法,我们可以使用该算法计算给定x坐标中平面上几行的最大值。我发现这篇文章:动态凸包技巧
http://wcipeg.com/wiki/Convex_hull_trick
笔者在这里说,该算法的动态版本在对数时间运行,但没有证据。当我们插入一条线时,我们测试了他的一些邻居,但我不明白如何通过这样的插入来测试所有的N
行时它怎么可能是O(log N)
。这是正确的还是我错过了什么?
UPDATE:这个问题已经回答了,将有趣的是下面
- 其余部分,我们如何删除?
我的意思是......如果我们删除一条线,我们可能需要先前的线来重置整个船体,但是当插入一个新的线时,该算法将删除所有不必要的线。 - 它是一个另一种方法,来解决类似上述问题(或类似的,例如像管理查询插入,删除,在X点或在给定范围等找到最大)
谢谢提前!
谢谢,我现在明白了。但是对于我来说还是不清楚,我们如何处理像这样的数据结构的查询。通过查询我的意思是插入和删除集合中的行。 – porcupine