1.简单
什么是算法?
- A一种为书写数学公式而设计的编程语言
- B任何带有图形界面的计算机程序
- C解决问题的、由有限个明确定义的步骤组成的序列
- D一种存储数字的数据结构
2.简单
二分查找对输入有什么要求?
- A数组元素不能超过 1000 个
- B数组长度必须是 2 的幂
- C数组必须有序
- D数组只能包含正数
3.简单
标准的基于数组的归并排序使用多少额外内存?
- AO(log n)
- BO(n)
- CO(n²)
- DO(1)
4.中等
简单的递归阶乘函数 fact(n) = n × fact(n − 1) 使用多少栈空间?
- AO(1)
- BO(n)
- CO(log n)
- DO(n²)
5.中等
均摊分析衡量的是什么?
- A算法在最好输入上的代价
- B序列中任何位置上单个最昂贵操作的代价
- C在最坏情况的操作序列上,每个操作的平均代价
- D在随机输入上的期望代价
6.中等
在有 V 个顶点、E 条边的图上,Bellman–Ford 算法的时间复杂度是多少?
- AO(V³ × E)
- BO(V × E)
- CO(V + E)
- DO(E log V)
7.困难
22n 属于 O(2ⁿ) 吗?
- A属于,因为在 Big O 中指数里的常数因子总是被忽略
- B不属于,因为 22n = 4ⁿ,而 4ⁿ / 2ⁿ = 2ⁿ 无界地增长
- C不属于,因为 22n 增长得比 2ⁿ 慢
- D属于,因为两者都是指数级的
8.困难
关于 little-o 记号,下列哪个说法是正确的?
- An² = o(n)
- Bn = o(n²),但 n 不是 o(n)
- Cn = o(n),因为每个函数都是自身的 little-o
- D2n = o(n),因为 2n 增长得慢
答案
- 1. C · 解决问题的、由有限个明确定义的步骤组成的序列
- 2. C · 数组必须有序
- 3. B · O(n)
- 4. B · O(n)
- 5. C · 在最坏情况的操作序列上,每个操作的平均代价
- 6. B · O(V × E)
- 7. B · 不属于,因为 22n = 4ⁿ,而 4ⁿ / 2ⁿ = 2ⁿ 无界地增长
- 8. B · n = o(n²),但 n 不是 o(n)
完整分步解答:请在 examproblems.com 上练习本主题。