GESP 四级 · GESP 202503 C++ 四级 第 11 题

选择题 · 答案 B · 考点:时间复杂度分析、位运算

← 整套速查表 GESP 四级 全部真题

题目

给定如下算法,其时间复杂度为( )。

bool f(int arr[], int n, int target) {
    for (int i = 0; i < (1 << n); i++) {
        int sum = 0;
        for (int j = 0; j < n; j++) {
            if (i & (1 << j)) {
                sum += arr[j];
            }
        }
        if (sum == target) return true;
    }
    return false;
}
答案:B

考点

时间复杂度分析位运算 讲解 →位运算 真题汇总 →

解题思维

看到两层循环,先数外层迭代次数(2^n)再乘内层次数(n)。

常见错误

误把(1<<n)当作n或n+1;看到两层就默认O(n²)。

详细解析(节选)

考点:时间复杂度|嵌套循环|位运算

解析

外层循环迭代2^n次,内层循环n次,内层操作为常数时间,总复杂度O(n × 2^n)。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断