假设我有一组矩形(具有不同或相同的尺寸)。
任务是找到(并删除)该集合中大于等于给定矩形的矩形。 它还应该是能够包围给定矩形的最小矩形。
通过进行线性搜索/更新,可以很容易地在O(n)时间内解决此问题,但是否可能实现更好的结果? 我会认为O(log n)是最佳的。 插入和删除必须比O(n)更快才能在我的情况下使用。
可以通过不找到最优矩形而缓解第二个限制来节省任何快捷方式: “它还应该是能够包围给定矩形的最小矩形之一”-
我考虑使用Z-order curve(宽度/高度)作为一维索引,并将其与树结合使用。 那样行得通吗?还是会浪费太多?
另一种方法是使用一个轴使用树,然后线性测试另一个轴。
有人做过类似的事情并分享他们的经验吗?
任务是找到(并删除)该集合中大于等于给定矩形的矩形。 它还应该是能够包围给定矩形的最小矩形。
通过进行线性搜索/更新,可以很容易地在O(n)时间内解决此问题,但是否可能实现更好的结果? 我会认为O(log n)是最佳的。 插入和删除必须比O(n)更快才能在我的情况下使用。
可以通过不找到最优矩形而缓解第二个限制来节省任何快捷方式: “它还应该是能够包围给定矩形的最小矩形之一”-
我考虑使用Z-order curve(宽度/高度)作为一维索引,并将其与树结合使用。 那样行得通吗?还是会浪费太多?
另一种方法是使用一个轴使用树,然后线性测试另一个轴。
有人做过类似的事情并分享他们的经验吗?
a
是否包含矩形b
?看起来如果h(a) >= h(b)
并且w(a) >= w(b)
,那么a包含b(其中h是斜边),但我不是数学家。 - Strawberry