1.简单
一个问题通常在什么情况下被称为易解的(tractable)?
- A只能通过尝试所有可能来求解
- B没有解
- C能在多项式时间内求解
- D能在常数时间内求解
2.简单
在有序数组上进行二分查找(binary search)的时间复杂度是多少?
- AO(n)
- BO(1)
- CO(log n)
- DO(n log n)
3.简单
哪种记号表示增长的上界?
- ALittle omega
- BBig Omega
- CBig Theta
- DBig O
4.中等
下面代码的时间复杂度是多少:for i = 1 to n: (j = 1; while j < n: j = j × 2)?
- AO(n²)
- BO(log n)
- CO(n log n)
- DO(n)
5.中等
递推式 T(n) = 2T(n/2) + O(1) 的解是什么?
- AO(n)
- BO(n²)
- CO(n log n)
- DO(log n)
6.中等
递推式 T(n) = T(n − 1) + O(n) 的解是什么?
- AO(n)
- BO(n log n)
- CO(n²)
- DO(2ⁿ)
7.困难
取一个极大匹配中每条边的两个端点,可以得到一个顶点覆盖。这个覆盖有多好?
- A与最优解相比质量未知
- B至多是最小顶点覆盖大小的两倍
- C至多是最小值的 log n 倍
- D总是一个最小顶点覆盖
8.困难
22n 属于 O(2ⁿ) 吗?
- A属于,因为两者都是指数级的
- B属于,因为在 Big O 中指数里的常数因子总是被忽略
- C不属于,因为 22n = 4ⁿ,而 4ⁿ / 2ⁿ = 2ⁿ 无界地增长
- D不属于,因为 22n 增长得比 2ⁿ 慢
答案
- 1. C · 能在多项式时间内求解
- 2. C · O(log n)
- 3. D · Big O
- 4. C · O(n log n)
- 5. A · O(n)
- 6. C · O(n²)
- 7. B · 至多是最小顶点覆盖大小的两倍
- 8. C · 不属于,因为 22n = 4ⁿ,而 4ⁿ / 2ⁿ = 2ⁿ 无界地增长
完整分步解答:请在 examproblems.com 上练习本主题。