1.简单
下列哪个运行时间是多项式的?
- AO(n!)
- BO(n³)
- CO(nⁿ)
- DO(2ⁿ)
2.简单
一个循环从 i = 1 开始,每次迭代将 i 翻倍,直到 i > n。它运行多少次迭代?
- A约 n 次
- B约 log₂ n 次
- C约 n² 次
- D约 n / 2 次
3.简单
O(2ⁿ) 的增长称为什么?
- A多项式级
- B指数级
- C线性
- D对数级
4.中等
递推式 T(n) = T(n − 1) + O(1) 的解是什么?
- AO(2ⁿ)
- BO(n)
- CO(log n)
- DO(n²)
5.中等
对长度为 m 和 n 的两个字符串求最长公共子序列,标准动态规划算法的时间复杂度是多少?
- AO(2m+n)
- BO(m + n)
- CO(mn)
- DO(mn log n)
6.中等
Prim 算法如何构建最小生成树?
- A把所有边按权重排序,逐条加入,除非会在森林中形成环
- B不断删除最贵的边,直到没有环为止
- C从一个起始顶点开始扩展一棵树,每次加入离开该树的最便宜的边
- D运行广度优先搜索并保留 BFS 树
7.困难
为什么当某些边权为负时,Dijkstra 算法可能给出错误结果?
- A优先队列中不能存储负数
- B顶点被取出时距离就被确定,但之后的负权边仍可能给它一条更短的路径
- C每遇到一条负权边它就会陷入无限循环
- D它只适用于无向图
8.困难
Held–Karp 动态规划算法能精确求解旅行商问题。对 n 个城市,它的运行时间是多少?
- AO(n!)
- BO(2n²)
- CO(n³)
- DO(n² 2ⁿ)
答案
- 1. B · O(n³)
- 2. B · 约 log₂ n 次
- 3. B · 指数级
- 4. B · O(n)
- 5. C · O(mn)
- 6. C · 从一个起始顶点开始扩展一棵树,每次加入离开该树的最便宜的边
- 7. B · 顶点被取出时距离就被确定,但之后的负权边仍可能给它一条更短的路径
- 8. D · O(n² 2ⁿ)
完整分步解答:请在 examproblems.com 上练习本主题。