1.简单
分治算法的三个步骤是什么?
- A读取、计算、写入
- B排序、查找、返回
- C分解、解决、合并
- D猜测、检查、重复
2.简单
哪种记号表示增长的下界?
- AO(Big O)
- Bo(little o)
- CΘ(Big Theta)
- DΩ(Big Omega)
3.简单
log₂ 1024 等于多少?
- A32
- B512
- C10
- D12
4.中等
简单的递归阶乘函数 fact(n) = n × fact(n − 1) 使用多少栈空间?
- AO(1)
- BO(n²)
- CO(log n)
- DO(n)
5.中等
递推式 T(n) = 2T(n − 1) + O(1) 的解是什么?
- AO(n²)
- BO(2ⁿ)
- CO(n)
- DO(n log n)
6.中等
对 n 个元素的数组进行归并排序,递归共有多少层?
- A约 n 层
- B约 log₂ n 层
- C约 √n 层
- D约 n / 2 层
7.困难
为什么当某些边权为负时,Dijkstra 算法可能给出错误结果?
- A它只适用于无向图
- B每遇到一条负权边它就会陷入无限循环
- C顶点被取出时距离就被确定,但之后的负权边仍可能给它一条更短的路径
- D优先队列中不能存储负数
8.困难
对于哪种背包问题变体,贪心规则"按单位重量价值的顺序取物品"总能给出最优解?
- A分数背包问题,物品可以分割
- B两种变体都可以
- C0/1 背包问题,物品必须整个拿取
- D两种变体都不可以
答案
- 1. C · 分解、解决、合并
- 2. D · Ω(Big Omega)
- 3. C · 10
- 4. D · O(n)
- 5. B · O(2ⁿ)
- 6. B · 约 log₂ n 层
- 7. C · 顶点被取出时距离就被确定,但之后的负权边仍可能给它一条更短的路径
- 8. A · 分数背包问题,物品可以分割
完整分步解答:请在 examproblems.com 上练习本主题。