1.简单
分治算法的三个步骤是什么?
- A读取、计算、写入
- B分解、解决、合并
- C猜测、检查、重复
- D排序、查找、返回
2.简单
下列哪个运行时间是多项式的?
- AO(n!)
- BO(n³)
- CO(nⁿ)
- DO(2ⁿ)
3.简单
哪种记号表示增长的上界?
- ALittle omega
- BBig O
- CBig Omega
- DBig Theta
4.中等
贪心算法(greedy algorithm):
- A在每一步都做出局部最优的选择
- B尝试所有可能的解
- C只使用递归
- D总能给出最优解
5.中等
对于在满时将容量翻倍的动态数组,追加元素的均摊(amortised)时间复杂度是多少?
- AO(n²)
- BO(log n)
- CO(n)
- DO(1)
6.中等
递推式 T(n) = 2T(n/2) + O(1) 的解是什么?
- AO(n)
- BO(n log n)
- CO(log n)
- DO(n²)
7.困难
下列哪个可满足性问题已知可以在多项式时间内求解?
- A电路可满足性问题
- B2-SAT,每个子句至多有两个文字
- C合取范式公式上的一般 SAT
- D3-SAT,每个子句恰好有三个文字
8.困难
哪种技术能使快速排序在任意输入上的期望运行时间为 O(n log n)?
- A在运行快速排序前先对输入排序
- B均匀随机地选择基准
- C总是选择第一个元素
- D只对左侧进行递归
答案
- 1. B · 分解、解决、合并
- 2. B · O(n³)
- 3. B · Big O
- 4. A · 在每一步都做出局部最优的选择
- 5. D · O(1)
- 6. A · O(n)
- 7. B · 2-SAT,每个子句至多有两个文字
- 8. B · 均匀随机地选择基准
完整分步解答:请在 examproblems.com 上练习本主题。