✏️ 纠错
第 237 题 / 共 301 题
第11题 给定如下算法,其时间复杂度为( )。
bool f(int arr[], int n, int target) {
for (int i = 0; i < 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;
}你真棒!
📝 题目解析
【GESP考点】时间复杂度分析、位运算与循环结构
【正确答案】D
【题目解析】
该算法中有两层嵌套的循环。外层循环从0到n - 1,执行n次。对于外层循环的每一次迭代,内层循环也从0到n - 1,执行n次。因此,总的执行次数为n×n=n2,所以该算法的时间复杂度为O(n2),选项B正确。