1.简单
O(2ⁿ) 的增长称为什么?
- A对数级
- B线性
- C指数级
- D多项式级
2.简单
归并排序采用哪种设计策略?
- A贪心选择
- B分治法(divide and conquer)
- C蛮力法
- D动态规划
3.简单
什么是算法?
- A解决问题的、由有限个明确定义的步骤组成的序列
- B一种为书写数学公式而设计的编程语言
- C一种存储数字的数据结构
- D任何带有图形界面的计算机程序
4.中等
递推式 T(n) = 2T(n/2) + O(1) 的解是什么?
- AO(n)
- BO(n²)
- CO(log n)
- DO(n log n)
5.中等
在有 V 个顶点、E 条边的图上,Bellman–Ford 算法的时间复杂度是多少?
- AO(E log V)
- BO(V × E)
- CO(V + E)
- DO(V³ × E)
6.中等
哪种排序算法是稳定的?
- A归并排序
- B堆排序
- C快速排序(常见的原地版本)
- D选择排序(常见版本)
7.困难
22n 属于 O(2ⁿ) 吗?
- A不属于,因为 22n = 4ⁿ,而 4ⁿ / 2ⁿ = 2ⁿ 无界地增长
- B不属于,因为 22n 增长得比 2ⁿ 慢
- C属于,因为在 Big O 中指数里的常数因子总是被忽略
- D属于,因为两者都是指数级的
8.困难
关于 log(n!),哪个界是正确的?
- AΘ(log n)
- BΘ(n)
- CΘ(n²)
- DΘ(n log n)
答案
- 1. C · 指数级
- 2. B · 分治法(divide and conquer)
- 3. A · 解决问题的、由有限个明确定义的步骤组成的序列
- 4. A · O(n)
- 5. B · O(V × E)
- 6. A · 归并排序
- 7. A · 不属于,因为 22n = 4ⁿ,而 4ⁿ / 2ⁿ = 2ⁿ 无界地增长
- 8. D · Θ(n log n)
完整分步解答:请在 examproblems.com 上练习本主题。