可能的起始值和结束值在0到4294967295之间(2的32次方-1或
0xFFFFFFFF
),虽然在该域中还有几个巨大的“空洞”,没有范围会覆盖它们,即使部分地覆盖。与可能性的域相比,大多数范围都非常小:我希望绝大多数长度均小于2000。我最重要的用例是查找包含给定整数值的所有范围。大多数情况下,我预计查找将失败(没有包含给定值的范围)。
否则,我显然也需要添加元素(通常)和从中删除元素(很少)。偶尔,我还需要找到与给定范围重叠的所有范围,而不是包含单个值的所有范围。
我可以使用什么样的数据结构呢?在范围列表中进行线性搜索是不切实际的,因为大多数情况下查找会失败;而我需要非常、非常经常地进行查找。
[start, end]
或[start, length]
都可以。 - zneak