算法与复杂度练习卷(附答案)

免费可打印的算法与复杂度练习卷:8 道题,从简单到考试水平,附答案。可打印或另存为 PDF。

教师请注意: 可免费打印、复印并在课堂上使用。每份新练习题都有新的数值和独立的答案。欢迎在课程页面添加指向 ExamProblems 的链接。

姓名: ____________________   日期: ____________

1.简单

分治算法的三个步骤是什么?

  1. A读取、计算、写入
  2. B分解、解决、合并
  3. C猜测、检查、重复
  4. D排序、查找、返回
2.简单

下列哪个运行时间是多项式的?

  1. AO(n!)
  2. BO(n³)
  3. CO(nⁿ)
  4. DO(2ⁿ)
3.简单

哪种记号表示增长的上界?

  1. ALittle omega
  2. BBig O
  3. CBig Omega
  4. DBig Theta
4.中等

贪心算法(greedy algorithm):

  1. A在每一步都做出局部最优的选择
  2. B尝试所有可能的解
  3. C只使用递归
  4. D总能给出最优解
5.中等

对于在满时将容量翻倍的动态数组,追加元素的均摊(amortised)时间复杂度是多少?

  1. AO(n²)
  2. BO(log n)
  3. CO(n)
  4. DO(1)
6.中等

递推式 T(n) = 2T(n/2) + O(1) 的解是什么?

  1. AO(n)
  2. BO(n log n)
  3. CO(log n)
  4. DO(n²)
7.困难

下列哪个可满足性问题已知可以在多项式时间内求解?

  1. A电路可满足性问题
  2. B2-SAT,每个子句至多有两个文字
  3. C合取范式公式上的一般 SAT
  4. D3-SAT,每个子句恰好有三个文字
8.困难

哪种技术能使快速排序在任意输入上的期望运行时间为 O(n log n)?

  1. A在运行快速排序前先对输入排序
  2. B均匀随机地选择基准
  3. C总是选择第一个元素
  4. D只对左侧进行递归

答案

  1. 1. B · 分解、解决、合并
  2. 2. B · O(n³)
  3. 3. B · Big O
  4. 4. A · 在每一步都做出局部最优的选择
  5. 5. D · O(1)
  6. 6. A · O(n)
  7. 7. B · 2-SAT,每个子句至多有两个文字
  8. 8. B · 均匀随机地选择基准

完整分步解答:请在 examproblems.com 上练习本主题。