【发布时间】:2016-03-18 23:25:08
【问题描述】:
我有一个从x 到y 的int 排序数组(元素的值是随机的,但使用qsort() 按升序排序)。该程序接收各种间隔,如<10;50> 或<50;100>。我有以下简单的for 循环来确定数组中的值是否在设定的间隔内,如果是,则向计数器添加一。
for(int i = 0; i < arraySize ;i++ ) {
if (points[i] >= interval1 && points[i] <= interval2){
counter++;
}
}
我需要一种比O(n) 更快的方法来搜索数组,并确定points[i] 中的值是否在设置的区间内。价值可能以百万计,因此速度会急剧下降。
数组中的元素范围可以从 0 到 1000000000 (1e9)。间隔分别。
【问题讨论】:
-
binary search 怎么样?
-
值大致从什么到什么? x>?你
-
@ringo 数组中的元素范围可以从 0 到 1000000000(1e9)。间隔分别。
标签: c arrays performance