首页 > 试题广场 >

下面函数实现了在一个升序整型数组arr中查找一个目标值tar

[单选题]
下面函数实现了在一个升序整型数组arr中查找一个目标值target的位置,请分析它的时间复杂度为()
int search(int start, int end, int target, int *arr)
{
    if(start <= end) {
        int mid = start + (end - start) / 2;
        if (arr[mid] == target)
            return mid;
        else if (target > arr[mid])
            return search(mid + 1, end, target, arr);
        else if (target < arr[mid])
            return search(start, mid - 1, target, arr);
    }
    return -1;
}
  • O(1)
  • O(logN)
  • O(N)
  • O(Nlog(N))
对半查找
发表于 2022-03-08 16:20:14 回复(0)
B。代码为标准的二分查找,期望情况下,每次将范围n缩小一半,直到找到目标元素或者左右游标相遇,因此平均需要logN次搜索,所以时间复杂度为O(logN)
发表于 2022-11-16 10:19:47 回复(0)
该题为二分查找,二分查找的时间复杂度为O(logN)
发表于 2022-04-09 09:26:47 回复(0)
标准的二分查找,不过是递归代替循环实现
发表于 2023-05-04 10:49:09 回复(0)