一尘不染

获取排序数组中属于log(n)时间范围内的元素数量

algorithm

假设我有以下类的数组,按y升序排列:

public class Obj {
    public int x;
    public int y;
}

如何找到在对数(N)时间中给出的最小和最大范围内,y值在数组中的Obj项数?

我曾考虑过使用Binary Search通过binarySearch来查找min和max元素的位置并减去,但是那不是2 log(n),因为它搜索了两次?

public static int getNumberOfItems(Obj[] a, int min, int max) {

阅读 191

收藏
2020-07-28

共1个答案

一尘不染

当要求您及时执行某项操作log(n)时,通常表示O(log(n))

如果是这种情况,则值得注意的是O(2 log(n)) == O(log(n)),即两者是同一件事。

有关big-
oh表示法的更多背景,请参阅Wikipedia页面

2020-07-28