1.简单
O(2ⁿ) 的增长称为什么?
- A多项式级
- B线性
- C指数级
- D对数级
2.简单
标准的基于数组的归并排序使用多少额外内存?
- AO(1)
- BO(log n)
- CO(n²)
- DO(n)
3.简单
在以邻接表存储的图上进行深度优先搜索,时间复杂度是多少?
- AO(V²)
- BO(E log V)
- CO(V + E)
- DO(V × E)
4.中等
递推式 T(n) = 2T(n − 1) + O(1) 的解是什么?
- AO(n log n)
- BO(2ⁿ)
- CO(n²)
- DO(n)
5.中等
在一个有序数组中,你从两端各放一个指针向内移动,寻找和为目标值的两个元素。时间复杂度是多少?
- AO(log n)
- BO(n²)
- CO(n)
- DO(n log n)
6.中等
在包含 1,000,000 个元素的有序数组上,二分查找在最坏情况下大约需要多少次比较?
- A约 100 次
- B约 500,000 次
- C约 1,000 次
- D约 20 次
7.困难
用自底向上的方法从 n 个无序元素构建二叉堆的时间复杂度是多少?
- AO(log n)
- BO(n²)
- CO(n log n)
- DO(n)
8.困难
用一个只保留最后两个值的循环计算第 n 个斐波那契数,时间和空间代价各是多少?
- AO(log n) 时间和 O(n) 空间
- BO(n) 时间和 O(1) 空间
- CO(2ⁿ) 时间和 O(1) 空间
- DO(n) 时间和 O(n) 空间
答案
- 1. C · 指数级
- 2. D · O(n)
- 3. C · O(V + E)
- 4. B · O(2ⁿ)
- 5. C · O(n)
- 6. D · 约 20 次
- 7. D · O(n)
- 8. B · O(n) 时间和 O(1) 空间
完整分步解答:请在 examproblems.com 上练习本主题。