题目
给出以下代码的大O性能。for i in range(n):for j in range(n):k=2+2 A. O(n)B. O(n^2) C. O(nlogn)D. O(n^3)
给出以下代码的大O性能。for i in range(n):for j in range(n):k=2+2
- A. O(n)
- B. $$ O(n^2) $$
- C. O(nlogn)
- D. $$ O(n^3) $$
题目解答
答案
B
解析
考查要点:本题主要考查对时间复杂度(大O表示法)的理解,特别是嵌套循环的分析能力。
解题核心思路:
- 外层循环和内层循环的次数相乘,得到总循环次数。
- 每次循环内部的操作时间复杂度为常数(O(1)),总时间复杂度为循环次数乘以单次操作复杂度。
破题关键点:
- 双重循环结构:外层循环运行
n
次,内层循环每次也运行n
次,总循环次数为n × n = n²
。 - 常数时间操作:
k=2+2
是固定操作,与n
无关,因此单次操作复杂度为O(1)。 - 最终复杂度:总时间复杂度为
n² × 1 = O(n²)
。
分析循环结构
- 外层循环:
for i in range(n)
运行n
次。 - 内层循环:
for j in range(n)
每次外层循环时,内层循环也运行n
次。 - 总循环次数:外层循环运行
n
次,每次触发内层循环n
次,因此总循环次数为:
$n \times n = n^2$
分析单次操作复杂度
- 内层循环体中的操作
k=2+2
是固定计算,与n
无关,时间复杂度为O(1)。
计算总时间复杂度
- 总时间复杂度为循环次数乘以单次操作复杂度:
$O(n^2 \times 1) = O(n^2)$