1.简单
在以邻接表存储的图上进行深度优先搜索,时间复杂度是多少?
- AO(V × E)
- BO(E log V)
- CO(V²)
- DO(V + E)
2.简单
分治算法的三个步骤是什么?
- A排序、查找、返回
- B猜测、检查、重复
- C读取、计算、写入
- D分解、解决、合并
3.简单
在包含 n 个元素的无序数组中进行线性查找(linear search)的时间复杂度(最坏情况)是多少?
- AO(n)
- BO(n²)
- CO(1)
- DO(log n)
4.中等
说一个 O(n²) 算法也是 O(n³),这正确吗?
- A不正确,因为 Big O 必须始终给出函数的确切增长率
- B正确,但仅当 n 小于 100 时
- C正确,因为 Big O 是上界,而 n² 的增长不比 n³ 快
- D不正确,因为当 n 很大时 n³ 小于 n²
5.中等
均摊分析衡量的是什么?
- A在最坏情况的操作序列上,每个操作的平均代价
- B算法在最好输入上的代价
- C在随机输入上的期望代价
- D序列中任何位置上单个最昂贵操作的代价
6.中等
递推式 T(n) = T(n − 1) + O(n) 的解是什么?
- AO(2ⁿ)
- BO(n²)
- CO(n)
- DO(n log n)
7.困难
关于 log(n!),哪个界是正确的?
- AΘ(log n)
- BΘ(n log n)
- CΘ(n)
- DΘ(n²)
8.困难
为什么在有序数组中任何基于比较的查找在最坏情况下都需要 Ω(log n) 次比较?
- A每个元素都必须至少比较一次
- B二分查找是唯一可能的算法,它需要 log₂ n 次比较
- C每次比较都需要对数时间
- D有 n 种可能结果的决策树,其深度至少为 log₂ n
答案
- 1. D · O(V + E)
- 2. D · 分解、解决、合并
- 3. A · O(n)
- 4. C · 正确,因为 Big O 是上界,而 n² 的增长不比 n³ 快
- 5. A · 在最坏情况的操作序列上,每个操作的平均代价
- 6. B · O(n²)
- 7. B · Θ(n log n)
- 8. D · 有 n 种可能结果的决策树,其深度至少为 log₂ n
完整分步解答:请在 examproblems.com 上练习本主题。