将数字散列到包含数字的区间

时间:2018-11-07 22:17:38

标签: algorithm data-structures hash

假设我有一组不相交的实际间隔,例如{[0,1), [1, 5], [7.5, 9.2]}。我想将此信息存储在支持恒定时间以下操作的数据结构中:

    给定浮点数find(x):
  • x,它应该返回包含x的间隔的索引(如果没有这样的间隔,则返回-1)。例如find(0.5) -> 0find(8.1) -> 2find(6) -> -1

是否存在这样的数据结构?如果是这样,它有名字吗?

我能想到的最好的办法是对时间间隔进行排序,并通过二进制搜索实现find,这对于k个时间间隔来说需要O(log k)。

0 个答案:

没有答案