1.简单
一个算法的运行时间是 O(n)。这种增长称为什么?
- A对数
- B线性
- C常数
- D平方
2.简单
f(n) = Θ(g(n)) 是什么意思?
- Af 的增长严格快于 g
- Bf 与 g 以相同的速率增长,上下都被 g 的常数倍所界定
- Cf 的增长严格慢于 g
- D对每个 n,f 总是小于 g,因此 g 是它的上界,但绝不是下界
3.简单
算法的最坏情况运行时间描述的是什么?
- A在最小输入上所需的时间
- B在所有规模为 n 的输入上所需的最长时间
- C在规模为 n 的随机输入上所需的期望时间
- D在慢速计算机上所需的时间
4.中等
递推式 T(n) = 2T(n − 1) + O(1) 的解是什么?
- AO(n)
- BO(n²)
- CO(n log n)
- DO(2ⁿ)
5.中等
一个函数先运行一个 n 次迭代的循环,然后再单独运行另一个 n 次迭代的循环。它的时间复杂度是多少?
- AO(log n)
- BO(2ⁿ)
- CO(n)
- DO(n²)
6.中等
递推式 T(n) = T(n − 1) + O(n) 的解是什么?
- AO(n)
- BO(n²)
- CO(2ⁿ)
- DO(n log n)
7.困难
Strassen 算法在矩阵乘法中对半尺寸的分块只做 7 次而不是 8 次递归乘法。它的运行时间是多少?
- AΘ(n³)
- BΘ(n2)
- CΘ(nlog₂ 7),约为 n2.81
- DΘ(n² log n)
8.困难
22n 属于 O(2ⁿ) 吗?
- A属于,因为两者都是指数级的
- B不属于,因为 22n 增长得比 2ⁿ 慢
- C属于,因为在 Big O 中指数里的常数因子总是被忽略
- D不属于,因为 22n = 4ⁿ,而 4ⁿ / 2ⁿ = 2ⁿ 无界地增长
答案
- 1. B · 线性
- 2. B · f 与 g 以相同的速率增长,上下都被 g 的常数倍所界定
- 3. B · 在所有规模为 n 的输入上所需的最长时间
- 4. D · O(2ⁿ)
- 5. C · O(n)
- 6. B · O(n²)
- 7. C · Θ(nlog₂ 7),约为 n2.81
- 8. D · 不属于,因为 22n = 4ⁿ,而 4ⁿ / 2ⁿ = 2ⁿ 无界地增长
完整分步解答:请在 examproblems.com 上练习本主题。