假设我有一个n个整数数组 我需要创建一个数据结构,允许我在数组的某个范围[a,b]中找到整数的数量。
我在考虑某种形式的计数排序?
答案 0 :(得分:1)
任何有效的搜索算法都需要排序的输入数据。然后,您可以在O(log(n))时间内轻松检索边界索引。
可能只能通过生成查找表来实现恒定时间检索。如果你知道a和b的界限,那不应该太难。不过,你将为内存空间交换时间效率。猜猜这就是“计算排序”的意思。
答案 1 :(得分:1)
是的,计算部分计数排序算法适合您。这本质上是什么 杰克拉比特说。
答案 2 :(得分:0)
快速排序数组。二进制搜索找到一个。从a中迭代数组,直到找到b。
我猜你想要在没有排序的情况下这样做,因为否则这个问题太简单了。
如果数据未排序,则在读取之前无法知道最终值,因此每次都必须遍历整个数组。