1.简单
一个算法的运行时间是 O(n)。这种增长称为什么?
- A常数
- B线性
- C对数
- D平方
2.简单
什么是递归?
- A永远不会结束的循环
- B在更小的输入上调用自身的函数
- C一种排序方法
- D一种数据结构
3.简单
在有序数组上进行二分查找(binary search)的时间复杂度是多少?
- AO(n)
- BO(log n)
- CO(n log n)
- DO(1)
4.中等
你对一个 n 个元素的数组排序一次,然后用二分查找回答 k 次成员查询。总代价是多少?
- AO(n log n + k log n)
- BO(nk)
- CO(n + k)
- DO(k n log n)
5.中等
Floyd–Warshall 算法计算什么?速度如何?
- A以 O(V³) 计算所有顶点对之间的最短路径
- B以 O(V²) 计算拓扑序
- C以 O(E log V) 计算最小生成树
- D以 O(V + E) 计算从一个源顶点到所有其他顶点的最短路径
6.中等
递推式 T(n) = T(n − 1) + O(n) 的解是什么?
- AO(2ⁿ)
- BO(n)
- CO(n²)
- DO(n log n)
7.困难
关于类 NP 的哪个定义是正确的?
- A非多项式的问题
- B不能在多项式时间内求解的问题
- C给定证书时,其"是"答案能在多项式时间内验证的判定问题
- D任何算法都无法求解的问题
8.困难
用自底向上的方法从 n 个无序元素构建二叉堆的时间复杂度是多少?
- AO(n²)
- BO(log n)
- CO(n)
- DO(n log n)
答案
- 1. B · 线性
- 2. B · 在更小的输入上调用自身的函数
- 3. B · O(log n)
- 4. A · O(n log n + k log n)
- 5. A · 以 O(V³) 计算所有顶点对之间的最短路径
- 6. C · O(n²)
- 7. C · 给定证书时,其"是"答案能在多项式时间内验证的判定问题
- 8. C · O(n)
完整分步解答:请在 examproblems.com 上练习本主题。