我有一个我想要查询的范围列表。范围是有序的,不重叠。
例如:
1-10, 11-17, 18-20, 21-30, 等...
目前我使用修改后的二进制搜索。但是我现在有了一个新的列表......除了不重叠的范围之外,新的列表,范围现在可以进行位掩码。
例如:
0-255, 256-287, 288-303, 等...
有几千个范围,最终约为500,000
我将在c中实现这一点,但语言并不重要。我只是在寻找有关如何利用这个新属性的一些想法。有没有人见过这个/读过它?如果有人有任何想法,他们将是最受欢迎的。 :)
答案 0 :(得分:0)
如何保持大小为500000的位向量?这将需要大约61kb。
然后,您可以通过执行AND来查询数字是否在O(1)的范围内。您还可以同时查询多个值。此外,设置范围位向量将非常快,因为您不需要排序。