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

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

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

姓名: ____________________   日期: ____________

1.简单

哪种排序算法会反复交换顺序错误的相邻元素?

  1. A冒泡排序(Bubble sort)
  2. B堆排序(Heap sort)
  3. C归并排序(Merge sort)
  4. D快速排序(Quicksort)
2.简单

空间复杂度衡量的是:

  1. A计算机的物理尺寸
  2. B代码的行数
  3. C随着输入增大,算法所需的内存量
  4. D程序编译后程序文件占用的磁盘空间
3.简单

当 n 变大时,下列哪一项增长最慢?

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

你对一个 n 个元素的数组排序一次,然后用二分查找回答 k 次成员查询。总代价是多少?

  1. AO(n + k)
  2. BO(k n log n)
  3. CO(n log n + k log n)
  4. DO(nk)
5.中等

快速排序总是使用第一个元素作为基准。它在哪种输入上表现出最坏情况?

  1. A随机顺序的数组
  2. B所有元素都不相同的数组
  3. C已经有序的数组
  4. D长度为 2 的数组
6.中等

硬币面值为 1、3 和 4,金额为 6,贪心的"先取最大硬币"方法使用多少枚硬币?与最优解相比如何?

  1. A贪心用 3 枚;最优解是 2 枚
  2. B贪心用 3 枚;最优解是 3 枚
  3. C贪心用 4 枚;最优解是 3 枚
  4. D贪心用 2 枚;最优解是 2 枚
7.困难

Karatsuba 乘法满足 T(n) = 3T(n/2) + O(n)。它的解是什么?

  1. AΘ(n log n)
  2. BΘ(n3)
  3. CΘ(n²)
  4. DΘ(nlog₂ 3),约为 n1.585
8.困难

关于类 P 的哪个定义是正确的?

  1. A能由确定性算法在多项式时间内求解的判定问题
  2. B在每台计算机上都需要指数时间的问题
  3. C其解可以被验证、但绝不能在多项式时间内找到的问题
  4. D能够并行求解的问题

答案

  1. 1. A · 冒泡排序(Bubble sort)
  2. 2. C · 随着输入增大,算法所需的内存量
  3. 3. B · O(log n)
  4. 4. C · O(n log n + k log n)
  5. 5. C · 已经有序的数组
  6. 6. A · 贪心用 3 枚;最优解是 2 枚
  7. 7. D · Θ(nlog₂ 3),约为 n1.585
  8. 8. A · 能由确定性算法在多项式时间内求解的判定问题

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