Data structures 用于存储范围的数据结构
我想知道是否有人知道可以有效处理以下情况的数据结构: 数据结构应该在一些连续的时间尺度上存储多个可能重叠的可变长度范围Data structures 用于存储范围的数据结构,data-structures,performance,range,Data Structures,Performance,Range,我想知道是否有人知道可以有效处理以下情况的数据结构: 数据结构应该在一些连续的时间尺度上存储多个可能重叠的可变长度范围 例如,您可以添加范围a:[0,3],b:[4,7],c:[0,9] 插入时间不需要特别有效 检索将以范围作为参数,并返回集合中与该范围重叠的所有范围,例如: Get(1,2)将返回a和cGet(6,7)将返回b和cGet(2,6)将返回所有三个 检索需要尽可能高效 您可以选择二叉树,它将范围存储在层次结构中。从根节点开始,它代表一个将其中间分割的包罗万象的范围,测试要插入
- 例如,您可以添加范围
a:[0,3],b:[4,7],c:[0,9]
- 插入时间不需要特别有效
将返回a和cGet(1,2)
将返回b和cGet(6,7)
将返回所有三个Get(2,6)
- 检索需要尽可能高效
这样,检索具有对数复杂性。您仍然需要在检索中管理重复项,因为某些范围将属于多个节点。您可以使用的一种数据结构是一维的。这些是为了处理范围和提供有效的检索而设计的。你还将了解;除了“重叠”,时间间隔之间还有十几种其他关系 还有其他影响该领域的问题,包括: