第21036题 单选题
给定C++程序中query函数的时间复杂度是多少?
#include <iostream>

int query(int n, int *a, int x) {
    int l = 0, r = n;
    while (l < r) {
        int mid = l + (r - l) / 2;
        if (a[mid] >= x) r = mid;
        else l = mid + 1;
    }

    if (l == n) return -1;
    return l;
}

int main() {
    int n = 10;
    int x = 3;
    int num[] = {1, 2, 2, 3, 3, 4, 5, 5, 6, 7};

    std::cout << query(n, num, x) << "\n";
    return 0;
}
A

O(1)

B

O(log n)

C

O(n)

D

O(n log n)

程序运行统计
暂无判题统计
提交0次 正确率0.00%
答案解析