1.简单
什么是算法?
- A解决问题的、由有限个明确定义的步骤组成的序列
- B一种存储数字的数据结构
- C一种为书写数学公式而设计的编程语言
- D任何带有图形界面的计算机程序
2.简单
一个算法的运行时间是 O(n)。这种增长称为什么?
- A平方
- B线性
- C常数
- D对数
3.简单
3n² + 5n + 2 的 Big O 是什么?
- AO(5n)
- BO(n²)
- CO(3n²)
- DO(n³)
4.中等
对长度为 m 和 n 的两个字符串求最长公共子序列,标准动态规划算法的时间复杂度是多少?
- AO(mn)
- BO(m + n)
- CO(mn log n)
- DO(2m+n)
5.中等
一个问题具有最优子结构是什么意思?
- A该问题恰好有一个最优解,所有子问题共享这个解
- B该问题可以在常数时间内求解
- C每个子问题的规模都相同
- D最优解可以由其子问题的最优解构造出来
6.中等
硬币面值为 1、3 和 4,金额为 6,贪心的"先取最大硬币"方法使用多少枚硬币?与最优解相比如何?
- A贪心用 4 枚;最优解是 3 枚
- B贪心用 2 枚;最优解是 2 枚
- C贪心用 3 枚;最优解是 3 枚
- D贪心用 3 枚;最优解是 2 枚
7.困难
关于类 NP 的哪个定义是正确的?
- A非多项式的问题
- B给定证书时,其"是"答案能在多项式时间内验证的判定问题
- C不能在多项式时间内求解的问题
- D任何算法都无法求解的问题
8.困难
当 n 很大时,n! 与 2ⁿ 相比如何?
- A2ⁿ 比 n! 增长得快
- Bn! 比 2ⁿ 增长得快
- C两者以相同的速率增长
- Dn! 是 O(n²)
答案
- 1. A · 解决问题的、由有限个明确定义的步骤组成的序列
- 2. B · 线性
- 3. B · O(n²)
- 4. A · O(mn)
- 5. D · 最优解可以由其子问题的最优解构造出来
- 6. D · 贪心用 3 枚;最优解是 2 枚
- 7. B · 给定证书时,其"是"答案能在多项式时间内验证的判定问题
- 8. B · n! 比 2ⁿ 增长得快
完整分步解答:请在 examproblems.com 上练习本主题。