假设我有一组矩形(尺寸不同或相同)。
- 任务是从集合中找到(并删除)大于或等于给定矩形的矩形。
- 它也应该是集合中可以包含给定矩形的最小矩形。
这可以通过线性搜索/更新在 O(n) 时间内轻松解决,但是否有可能获得更好的结果?我认为 O(log n) 是最优的。插入和删除也必须比 O(n) 快,这在我的情况下才有用。
可以通过不找到最佳矩形来制作任何快捷方式,而是将第二个限制放松为:“它也应该是可以包含给定矩形的最小矩形之一” -
我正在考虑使用Z 阶曲线(宽度/高度)并将其用作一维索引并将其与树相结合。那行得通吗?还是会浪费太多?
另一种方法是使用一个轴使用树,然后线性测试另一个。
有人做过类似的事情并可以分享他们的经验吗?