当一个点移动时,有效地重新计算点集的边界矩形

时间:2014-07-14 20:04:31

标签: algorithm complexity-theory asymptotic-complexity

我有一系列积分。我需要找到最小边界矩形,每次移动点时都包含所有点。

可以迭代所有点并在每次移动一个点时找到最小/最大坐标 - 每次移动O(n)

我想知道,首先可以在每次搬家时比O(n)做得更快吗?

我以为我可以找到初始边界矩形然后以某种方式只更新它。

1 个答案:

答案 0 :(得分:5)

一种方法是使用4个堆,

  1. Minheap for x坐标
  2. x坐标的Maxheap
  3. y坐标的Minheap
  4. y坐标的Maxheap
  5. 堆的顶部条目给出了边界框位置,并且可以在每个移动点的O(logn)时间内更新堆。

    (注意这只给出一个轴对齐的边界框)