1.简单
哪种排序算法选择一个基准,并把数组划分为较小元素和较大元素两部分?
- A归并排序
- B冒泡排序
- C快速排序
- D插入排序
2.简单
当 n 变大时,下列哪一项增长最慢?
- AO(n)
- BO(n log n)
- CO(n²)
- DO(log n)
3.简单
通过下标访问数组中的元素需要:
- AO(log n)
- BO(1)
- CO(n²)
- DO(n)
4.中等
为什么动态规划不能真正加速归并排序?
- A它的子问题不重叠,因此没有可以复用的结果
- B归并排序没有递归结构
- C归并排序已经是 O(n)
- D动态规划只适用于图问题,不适用于数组
5.中等
递推式 T(n) = 2T(n/2) + O(1) 的解是什么?
- AO(n²)
- BO(n)
- CO(n log n)
- DO(log n)
6.中等
均摊分析衡量的是什么?
- A算法在最好输入上的代价
- B在最坏情况的操作序列上,每个操作的平均代价
- C序列中任何位置上单个最昂贵操作的代价
- D在随机输入上的期望代价
7.困难
下列哪个可满足性问题已知可以在多项式时间内求解?
- A电路可满足性问题
- B2-SAT,每个子句至多有两个文字
- C3-SAT,每个子句恰好有三个文字
- D合取范式公式上的一般 SAT
8.困难
要证明一个判定问题 X 是 NP 完全的,必须证明哪两点?
- AX 属于 NP,并且某个已知的 NP 完全问题能在多项式时间内归约到 X
- BX 没有多项式算法,并且 X 是可判定的
- CX 能归约到 P 中的某个问题,并且 X 属于 NP
- DX 属于 P,并且 X 能归约到 SAT
答案
- 1. C · 快速排序
- 2. D · O(log n)
- 3. B · O(1)
- 4. A · 它的子问题不重叠,因此没有可以复用的结果
- 5. B · O(n)
- 6. B · 在最坏情况的操作序列上,每个操作的平均代价
- 7. B · 2-SAT,每个子句至多有两个文字
- 8. A · X 属于 NP,并且某个已知的 NP 完全问题能在多项式时间内归约到 X
完整分步解答:请在 examproblems.com 上练习本主题。