考虑一大组一维的浮点区间,例如
[1.0, 2.5], 1.0 |---------------|2.5
[1.5, 3.6], 1.5|---------------------|3.6
.....
希望找到包含给定点的所有区间。例如给定点 = 1.2,算法应该返回第一个区间,如果给定点 = 2.0,它应该返回上例中的前两个区间。
在我正在处理的问题中,这个操作需要在大量的时间间隔内重复大量的次数。因此,不需要蛮力搜索,性能是一个重要因素。
在搜索它之后,我发现这个问题是在计算几何的上下文中使用间隔跳过列表来解决的。我想知道是否有任何简单、高效的 C++ 实现可用。
编辑:为了更准确地了解问题,有 N 个区间,对于 M 个点,应该确定哪些区间包含每个点。N 和 M 是大数,其中 M 大于 N。