1.简单
当 n 变大时,下列哪一项增长最慢?
- AO(n²)
- BO(n log n)
- CO(n)
- DO(log n)
2.简单
通过下标访问数组中的元素需要:
- AO(1)
- BO(log n)
- CO(n²)
- DO(n)
3.简单
平均情况运行时间描述的是什么?
- A在最常见的计算机上所需的时间
- B平均长度的输入所需的时间
- C在给定的规模为 n 的输入分布上的期望时间
- D最好情况与最坏情况运行时间之间的中间值
4.中等
用自底向上的表格计算第 n 个斐波那契数,时间复杂度是多少?
- AO(n)
- BO(n²)
- CO(log n)
- DO(2ⁿ)
5.中等
哪种排序算法是稳定的?
- A选择排序(常见版本)
- B堆排序
- C快速排序(常见的原地版本)
- D归并排序
6.中等
对于在满时将容量翻倍的动态数组,追加元素的均摊(amortised)时间复杂度是多少?
- AO(1)
- BO(log n)
- CO(n²)
- DO(n)
7.困难
关于类 NP 的哪个定义是正确的?
- A给定证书时,其"是"答案能在多项式时间内验证的判定问题
- B非多项式的问题
- C任何算法都无法求解的问题
- D不能在多项式时间内求解的问题
8.困难
插入排序在有序输入上运行时间为 O(n)。这与比较排序的 Ω(n log n) 下界矛盾吗?
- A矛盾,因此这个下界是错的
- B矛盾,但仅对长度小于 100 的数组
- C不矛盾,下界针对的是所有输入中的最坏情况,而不是每一个输入
- D不矛盾,因为插入排序不是比较排序
答案
- 1. D · O(log n)
- 2. A · O(1)
- 3. C · 在给定的规模为 n 的输入分布上的期望时间
- 4. A · O(n)
- 5. D · 归并排序
- 6. A · O(1)
- 7. A · 给定证书时,其"是"答案能在多项式时间内验证的判定问题
- 8. C · 不矛盾,下界针对的是所有输入中的最坏情况,而不是每一个输入
完整分步解答:请在 examproblems.com 上练习本主题。