1.简单
一个循环从 i = 1 开始,每次迭代将 i 翻倍,直到 i > n。它运行多少次迭代?
- A约 n / 2 次
- B约 n² 次
- C约 log₂ n 次
- D约 n 次
2.简单
在已经有序的数组上,插入排序的最好情况时间复杂度是多少?
- AO(n)
- BO(1)
- CO(n²)
- DO(n log n)
3.简单
f(n) = Θ(g(n)) 是什么意思?
- A对每个 n,f 总是小于 g,因此 g 是它的上界,但绝不是下界
- Bf 的增长严格慢于 g
- Cf 与 g 以相同的速率增长,上下都被 g 的常数倍所界定
- Df 的增长严格快于 g
4.中等
基于比较的排序在最坏情况下的下界是:
- AΩ(n²)
- BΩ(n)
- CΩ(log n)
- DΩ(n log n)
5.中等
下面代码的时间复杂度是多少:for i = 1 to n: (j = 1; while j < n: j = j × 2)?
- AO(n)
- BO(n log n)
- CO(log n)
- DO(n²)
6.中等
递推式 T(n) = 2T(n/2) + O(1) 的解是什么?
- AO(log n)
- BO(n²)
- CO(n log n)
- DO(n)
7.困难
为什么哈希表的平均查找时间是 O(1),而最坏情况是 O(n)?
- A哈希函数运行很慢
- B键必须先排序
- C数组的访问时间是 O(n)
- D许多键可能冲突(collision)到同一个桶中
8.困难
哪种技术能使快速排序在任意输入上的期望运行时间为 O(n log n)?
- A在运行快速排序前先对输入排序
- B只对左侧进行递归
- C总是选择第一个元素
- D均匀随机地选择基准
答案
- 1. C · 约 log₂ n 次
- 2. A · O(n)
- 3. C · f 与 g 以相同的速率增长,上下都被 g 的常数倍所界定
- 4. D · Ω(n log n)
- 5. B · O(n log n)
- 6. D · O(n)
- 7. D · 许多键可能冲突(collision)到同一个桶中
- 8. D · 均匀随机地选择基准
完整分步解答:请在 examproblems.com 上练习本主题。