数据结构以恒定时间查找某个范围内的整数数

时间:2010-11-06 20:32:32

标签: data-structures

假设我有一个n个整数数组 我需要创建一个数据结构,允许我在数组的某个范围[a,b]中找到整数的数量。

我在考虑某种形式的计数排序?

3 个答案:

答案 0 :(得分:1)

任何有效的搜索算法都需要排序的输入数据。然后,您可以在O(log(n))时间内轻松检索边界索引。

可能只能通过生成查找表来实现恒定时间检索。如果你知道a和b的界限,那不应该太难。不过,你将为内存空间交换时间效率。猜猜这就是“计算排序”的意思。

答案 1 :(得分:1)

是的,计算部分计数排序算法适合您。这本质上是什么 杰克拉比特说。

答案 2 :(得分:0)

快速排序数组。二进制搜索找到一个。从a中迭代数组,直到找到b。

我猜你想要在没有排序的情况下这样做,因为否则这个问题太简单了。

如果数据未排序,则在读取之前无法知道最终值,因此每次都必须遍历整个数组。