1.简单
一个算法的运行时间是 O(n)。这种增长称为什么?
- A平方
- B对数
- C常数
- D线性
2.简单
标准的基于数组的归并排序使用多少额外内存?
- AO(1)
- BO(n²)
- CO(log n)
- DO(n)
3.简单
哪种记号表示增长的上界?
- ABig O
- BBig Omega
- CBig Theta
- DLittle omega
4.中等
一个函数先运行一个 n 次迭代的循环,然后再单独运行另一个 n 次迭代的循环。它的时间复杂度是多少?
- AO(n)
- BO(2ⁿ)
- CO(log n)
- DO(n²)
5.中等
对 n 个 k 进制、d 位的整数进行 LSD 基数排序(radix sort),运行时间是多少?
- AO(n²)
- BO(d(n + k))
- CO(n log n)
- DO(dn log k)
6.中等
关于一个没有可达基本情况的递归函数,下列哪个说法是正确的?
- A它会不断调用自身,直到调用栈溢出
- B编译器总会把它变成能安全结束的循环
- C它会自动返回 0
- D它的运行时间为 O(1)
7.困难
Cook–Levin 定理确立了什么?
- AP 不等于 NP
- B布尔可满足性问题(SAT)是 NP 完全的
- C每个 NP 问题都能在指数时间内求解
- D停机问题是不可判定的
8.困难
为什么当某些边权为负时,Dijkstra 算法可能给出错误结果?
- A每遇到一条负权边它就会陷入无限循环
- B优先队列中不能存储负数
- C顶点被取出时距离就被确定,但之后的负权边仍可能给它一条更短的路径
- D它只适用于无向图
答案
- 1. D · 线性
- 2. D · O(n)
- 3. A · Big O
- 4. A · O(n)
- 5. B · O(d(n + k))
- 6. A · 它会不断调用自身,直到调用栈溢出
- 7. B · 布尔可满足性问题(SAT)是 NP 完全的
- 8. C · 顶点被取出时距离就被确定,但之后的负权边仍可能给它一条更短的路径
完整分步解答:请在 examproblems.com 上练习本主题。