一个比O(n)更好的范围交集算法?
范围交集是一个简单但并非微不足道的问题。
它已经回答了两次:
第一个解决方案是O(n),第二个解决方案是数据库(当然小于O(n)。
我有同样的问题,但对于一个大n,我不在数据库中。
这个问题似乎与Store 2D点非常相似,以便快速检索矩形内的那些点,但我不明白它是如何映射的。
那么,您将存储范围集在什么数据结构中,以便对范围进行搜索的成本低于O(n)?(使用可用于Java的库的额外学分)
编辑:
我想获取所有相交范围的子集,这意味着搜索范围可以相交多个范围。
在Java中需要小于O(n)的方法是:
public class RangeSet {
....
public Set<Range> intersects(Range range);
....
}
其中,Range 只是一个包含一对 int 开始和结束的类。
这不是一个不可能的问题,我已经有了解决方案,我只是想看看是否有更标准/更简单的方法。