【发布时间】:2012-12-04 07:41:12
【问题描述】:
我想知道是否有一个好的数据结构来保存轴对齐的非重叠离散空间矩形列表。因此,每个矩形都可以存储为整数 x、y、宽度和高度。只存储这样一个列表很容易,但我也希望能够查询给定的 x,y 坐标是否在任何其他矩形内。
一个简单的解决方案是创建一个散列并用散列后的每个矩形开始的左下角坐标填充它。这不允许我测试给定的 x,y 坐标,因为它会碰到中间的空白空间。另一个答案是在散列表中创建一堆边,用单位正方形覆盖整个矩形。这会为 100 x 100 的矩形创建太多不必要的条目。
【问题讨论】:
-
我不确定当插入一个与其中一个树分割重叠的新矩形时它会如何工作。我想我可以拆分那个矩形,但是在退化的情况下,我们会得到像哈希表一样糟糕的东西,同时还有 log(n) 插入时间的额外好处。还是我误会了?
标签: algorithm sorting data-structures