【发布时间】:2011-01-28 00:50:39
【问题描述】:
假设我有一组最小值和最大值。我想要一个数据结构,给定一个外部值,最有效地为我提供 value >= min,value
如果您知道范围不重叠,我想您可以在 min 上做一个平衡的二叉搜索树,并且满足 (min,max) 的第一个节点必须是唯一的一个。但如果范围可以重叠,是否有一种数据结构可以让您有效地做到这一点?
【问题讨论】:
-
正在使用什么样的数据值?整数?双打?浮动?字符串?
-
列表不能在 O(n) 中做到这一点吗?
foreach(pair) check max and min; push on answer; -
EvilTeach:这些将是整数或长整数。 nonnb:我没有使用 RDBMS,否则我会这样做......问题实际上是我不能使用 RDBMS 并且正在尝试实现索引所带来的速度提升。 Marnix:例如,在不重叠的情况下,使用 BST 会显着提高速度,因为您需要 O(ln(n)),而且数据集非常大。我要在这里实现最高效率。理想情况下,创建索引或数据结构只是一开始的开销,这让后面的操作运行得更快。
-
范围大小是否有限制。
标签: data-structures