algorithm - 用于根据重叠范围快速检查数字的数据结构

标签 algorithm data-structures

假设我有以下数字范围:

0-500 0-100 75-127 125-157 130-198 198-200

现在,假设我需要能够检查任何给定的数字并查看它在哪个范围内。哪种数据结构最有效地用于说明数字 100 属于范围 0- 500、0-100 和 75-127?我只想要一个保存起始值的二叉树吗?在那种情况下,树中的每个节点都可以保存包含该起始点每个范围的多个对象吗?

请注意,我只需要检索这个特定的应用程序,我真的不认为自己需要在进程中修改它,所以检索速度是我的首要任务。

谢谢!

最佳答案

你需要的是interval tree .区间树是一个非常通用的概念,每个问题的节点数据都略有不同。在您的情况下,每个节点都会保留一个输入间隔列表,该列表涵盖了节点所代表的间隔。

关于algorithm - 用于根据重叠范围快速检查数字的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23026298/

相关文章:

arrays - 基于数组与基于列表的堆栈和队列

c# - 什么数据结构类似于数据库?

algorithm - 分而治之求二维数组中两个有序元素之间的最大差异

c# - 如何将树过滤到共同的 parent

java - 如何使范围树实现线程安全

java - C# 和 Java (Android) 中的算法转换为 HTML

data-structures - 图表可以比替代方案更好地解决哪些问题?

c++ - 使用不带参数列表的类模板(未声明的标识符)

data-structures - 相关数据结构

java - 查找大 n 的组合数 C(n,r)(小数表示精度)