【发布时间】:2015-05-27 19:21:26
【问题描述】:
我在空闲时间阅读了一些有趣的算法,我刚刚发现了凸包技巧算法,我们可以使用它计算给定 x 坐标上平面中几条线的最大值。我找到了这篇文章:
http://wcipeg.com/wiki/Convex_hull_trick
这里作者说,这个算法的动态版本运行在对数时间,但没有证据。当我们插入一行时,我们测试了他的一些邻居,但是当我们可以通过这样的插入测试所有N 行时,我不明白它怎么会是O(log N)。是正确的还是我错过了什么?
更新:这个问题已经回答了,有趣的是下面的其余部分
- 如何删除?
我的意思是...如果我们删除一行,我们可能需要以前的行来重置整个船体,但是在插入新行时,该算法会删除所有不必要的行。 - 这是另一种解决上述问题的方法(或类似问题,例如管理插入、删除、在 x 点或给定范围上查找最大值等查询)
提前谢谢你!
【问题讨论】:
标签: algorithm optimization data-structures convex-hull convex-optimization