1.简单
当 n 变大时,下列哪一项增长最慢?
- AO(n)
- BO(log n)
- CO(n²)
- DO(n log n)
2.简单
O(2ⁿ) 的增长称为什么?
- A指数级
- B多项式级
- C对数级
- D线性
3.简单
哪种排序算法选择一个基准,并把数组划分为较小元素和较大元素两部分?
- A插入排序
- B冒泡排序
- C快速排序
- D归并排序
4.中等
基于比较的排序在最坏情况下的下界是:
- AΩ(log n)
- BΩ(n)
- CΩ(n²)
- DΩ(n log n)
5.中等
一个问题具有最优子结构是什么意思?
- A每个子问题的规模都相同
- B该问题恰好有一个最优解,所有子问题共享这个解
- C该问题可以在常数时间内求解
- D最优解可以由其子问题的最优解构造出来
6.中等
Floyd–Warshall 算法计算什么?速度如何?
- A以 O(V²) 计算拓扑序
- B以 O(V + E) 计算从一个源顶点到所有其他顶点的最短路径
- C以 O(E log V) 计算最小生成树
- D以 O(V³) 计算所有顶点对之间的最短路径
7.困难
Bellman–Ford 算法如何检测从源点可达的负权环?
- A检查是否有边的权重为负
- B在 V − 1 轮之后,检查是否还有边可以被松弛
- C它运行两次 Dijkstra 算法,并比较两次的距离结果
- D用深度优先搜索统计环的数量
8.困难
如果有人为某个 NP 完全问题找到了多项式时间算法,会有什么结果?
- A只有那一个问题会进入 P
- B所有指数时间算法都会立即变成线性时间
- CNP 中的每个问题都能在多项式时间内求解,因此 P = NP
- D停机问题将变得可判定
答案
- 1. B · O(log n)
- 2. A · 指数级
- 3. C · 快速排序
- 4. D · Ω(n log n)
- 5. D · 最优解可以由其子问题的最优解构造出来
- 6. D · 以 O(V³) 计算所有顶点对之间的最短路径
- 7. B · 在 V − 1 轮之后,检查是否还有边可以被松弛
- 8. C · NP 中的每个问题都能在多项式时间内求解,因此 P = NP
完整分步解答:请在 examproblems.com 上练习本主题。