间隔树
使用AVL树的动态,线程安全,自我调整,自我平衡的分段树版本。
该项目提供了一个保存uint64间隔的结构。 数据被构造为二进制搜索树,因此添加间隔并查找间隔是有效的。 如果可以随时合并间隔,则可以这样做,因此内存消耗将保持在较低水平。 平衡是根据AVL树规则自动完成的,因此该结构保证了操作的可伸缩性。
运作方式
当前实施的操作是:
插
包含
两者的复杂度均为O(log n)。
插入会导致增加节点或增加节点间隔。 后者可能还涉及删除节点。 之后进行重新平衡。
包含与任何普通BST中一样执行。
记忆
由于此结构是AVL树,因此内存使用量绑定到O(n)。 请注意,由于尽可能执行修剪,因此您可以期望树消耗的内存少于n,具体取决于间隔的稀疏性。
并发
操作通过RWLock同步,因此该结构是线程安全的,并且可以同时执行多个读取(包含)。 当您需要很少更新的同步结构时,这是理想的选择。