1.简单
归并排序的最坏情况时间复杂度是多少?
- AO(n²)
- BO(n log n)
- CO(n)
- DO(log n)
2.简单
一个算法的运行时间是 O(n)。这种增长称为什么?
- A线性
- B对数
- C平方
- D常数
3.简单
二分查找对输入有什么要求?
- A数组只能包含正数
- B数组必须有序
- C数组元素不能超过 1000 个
- D数组长度必须是 2 的幂
4.中等
均摊分析衡量的是什么?
- A在最坏情况的操作序列上,每个操作的平均代价
- B序列中任何位置上单个最昂贵操作的代价
- C算法在最好输入上的代价
- D在随机输入上的期望代价
5.中等
简单的递归阶乘函数 fact(n) = n × fact(n − 1) 使用多少栈空间?
- AO(log n)
- BO(n²)
- CO(n)
- DO(1)
6.中等
快速排序的最坏情况时间复杂度是多少?
- AO(n log n)
- BO(log n)
- CO(n)
- DO(n²)
7.困难
关于 log(n!),哪个界是正确的?
- AΘ(n)
- BΘ(n log n)
- CΘ(n²)
- DΘ(log n)
8.困难
要证明一个新问题 X 是 NP 难(NP-hard)的,必须做什么?
- A证明 X 能在多项式时间内被验证
- B证明 X 对于小规模输入没有多项式算法
- C把 X 在多项式时间内归约到一个已知的 NP 难问题
- D把一个已知的 NP 难问题在多项式时间内归约到 X
答案
- 1. B · O(n log n)
- 2. A · 线性
- 3. B · 数组必须有序
- 4. A · 在最坏情况的操作序列上,每个操作的平均代价
- 5. C · O(n)
- 6. D · O(n²)
- 7. B · Θ(n log n)
- 8. D · 把一个已知的 NP 难问题在多项式时间内归约到 X
完整分步解答:请在 examproblems.com 上练习本主题。