1.简单
O(2ⁿ) 的增长称为什么?
- A线性
- B对数级
- C指数级
- D多项式级
2.简单
在包含 n 个元素的无序数组中进行线性查找(linear search)的时间复杂度(最坏情况)是多少?
- AO(n)
- BO(1)
- CO(log n)
- DO(n²)
3.简单
一个算法的运行时间是 O(n)。这种增长称为什么?
- A对数
- B线性
- C常数
- D平方
4.中等
哪种排序算法是稳定的?
- A堆排序
- B选择排序(常见版本)
- C快速排序(常见的原地版本)
- D归并排序
5.中等
在边权非负的图中,哪种算法用于求单源最短路径?
- A任何情况下都必须使用 Bellman–Ford
- BKruskal 算法
- CDijkstra 算法
- D深度优先搜索(DFS)
6.中等
硬币面值为 1、3 和 4,金额为 6,贪心的"先取最大硬币"方法使用多少枚硬币?与最优解相比如何?
- A贪心用 4 枚;最优解是 3 枚
- B贪心用 3 枚;最优解是 2 枚
- C贪心用 2 枚;最优解是 2 枚
- D贪心用 3 枚;最优解是 3 枚
7.困难
最短简单路径可以在多项式时间内求出。在一般图中求两个顶点之间的最长简单路径,已知情况如何?
- A它是不可判定的
- B它是 NP 难的
- C总能在 O(V + E) 内求解
- D可以把权重取反后用 Dijkstra 算法求解
8.困难
关于 log(n!),哪个界是正确的?
- AΘ(log n)
- BΘ(n²)
- CΘ(n)
- DΘ(n log n)
答案
- 1. C · 指数级
- 2. A · O(n)
- 3. B · 线性
- 4. D · 归并排序
- 5. C · Dijkstra 算法
- 6. B · 贪心用 3 枚;最优解是 2 枚
- 7. B · 它是 NP 难的
- 8. D · Θ(n log n)
完整分步解答:请在 examproblems.com 上练习本主题。