1.简单
算法的最坏情况运行时间描述的是什么?
- A在规模为 n 的随机输入上所需的期望时间
- B在最小输入上所需的时间
- C在慢速计算机上所需的时间
- D在所有规模为 n 的输入上所需的最长时间
2.简单
哪种记号表示增长的上界?
- ALittle omega
- BBig O
- CBig Theta
- DBig Omega
3.简单
在已经有序的数组上,插入排序的最好情况时间复杂度是多少?
- AO(n²)
- BO(n log n)
- CO(n)
- DO(1)
4.中等
递推式 T(n) = 2T(n − 1) + O(1) 的解是什么?
- AO(n)
- BO(n²)
- CO(2ⁿ)
- DO(n log n)
5.中等
递推式 T(n) = T(n − 1) + O(1) 的解是什么?
- AO(2ⁿ)
- BO(log n)
- CO(n)
- DO(n²)
6.中等
当问题具有以下特征时,动态规划(dynamic programming)很有用:
- A重叠子问题和最优子结构
- B只有一个循环
- C完全没有子问题,因此一步就能解决
- D只有随机输入
7.困难
用动态规划求解 0/1 背包问题需要 O(nW) 时间。为什么称之为伪多项式(pseudo-polynomial)?
- A因为 n 总是很小
- B因为它只适用于 W = 0
- C因为该算法是随机化的,其运行时间随每个输入而变化
- DW 是一个数值,因此运行时间相对于表示 W 所需的位数是指数级的
8.困难
当 n 很大时,n! 与 2ⁿ 相比如何?
- An! 比 2ⁿ 增长得快
- B两者以相同的速率增长
- Cn! 是 O(n²)
- D2ⁿ 比 n! 增长得快
答案
- 1. D · 在所有规模为 n 的输入上所需的最长时间
- 2. B · Big O
- 3. C · O(n)
- 4. C · O(2ⁿ)
- 5. C · O(n)
- 6. A · 重叠子问题和最优子结构
- 7. D · W 是一个数值,因此运行时间相对于表示 W 所需的位数是指数级的
- 8. A · n! 比 2ⁿ 增长得快
完整分步解答:请在 examproblems.com 上练习本主题。