1.简单
在已经有序的数组上,插入排序的最好情况时间复杂度是多少?
- AO(n²)
- BO(n)
- CO(1)
- DO(n log n)
2.简单
空间复杂度衡量的是:
- A代码的行数
- B计算机的物理尺寸
- C程序编译后程序文件占用的磁盘空间
- D随着输入增大,算法所需的内存量
3.简单
在以邻接表存储的图上进行深度优先搜索,时间复杂度是多少?
- AO(V × E)
- BO(V + E)
- CO(V²)
- DO(E log V)
4.中等
快速排序的最坏情况时间复杂度是多少?
- AO(n)
- BO(log n)
- CO(n log n)
- DO(n²)
5.中等
下面代码的时间复杂度是多少:for i = 1 to n: for j = 1 to i: 执行 O(1) 的工作?
- AO(n³)
- BO(n)
- CO(n²)
- DO(n log n)
6.中等
对 n 个 k 进制、d 位的整数进行 LSD 基数排序(radix sort),运行时间是多少?
- AO(n log n)
- BO(dn log k)
- CO(d(n + k))
- DO(n²)
7.困难
下列哪个可满足性问题已知可以在多项式时间内求解?
- A2-SAT,每个子句至多有两个文字
- B合取范式公式上的一般 SAT
- C3-SAT,每个子句恰好有三个文字
- D电路可满足性问题
8.困难
插入排序在有序输入上运行时间为 O(n)。这与比较排序的 Ω(n log n) 下界矛盾吗?
- A不矛盾,下界针对的是所有输入中的最坏情况,而不是每一个输入
- B不矛盾,因为插入排序不是比较排序
- C矛盾,因此这个下界是错的
- D矛盾,但仅对长度小于 100 的数组
答案
- 1. B · O(n)
- 2. D · 随着输入增大,算法所需的内存量
- 3. B · O(V + E)
- 4. D · O(n²)
- 5. C · O(n²)
- 6. C · O(d(n + k))
- 7. A · 2-SAT,每个子句至多有两个文字
- 8. A · 不矛盾,下界针对的是所有输入中的最坏情况,而不是每一个输入
完整分步解答:请在 examproblems.com 上练习本主题。