wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

算法综合测试题

Total questions: 14

Worksheet time: 12mins

Name
Class
Date
1.

下列关于算法的基本特征描述中,错误的是( )

a)

可行性:算法的每一步操作都必须是可执行的

b)

确定性:算法的每一步都应有确切的定义,无歧义

c)

无穷性:算法可以无限循环执行以处理复杂问题

d)

有穷性:算法必须在有限步骤内结束

2.

算法的时间复杂度主要用于衡量( )

a)

算法程序的长度

b)

算法执行过程中所需的存储空间

c)

算法执行所需的时间与数据规模的关系

d)

算法的可读性

3.

下列关于递归算法的描述中,正确的是( )

a)

递归算法一定比非递归算法效率更高

b)

递归算法的核心是将大问题分解为与原问题结构相同的小问题

c)

递归算法不需要终止条件,可自行结束

d)

所有问题都适合用递归算法解决

4.

执行以下递归函数,调用 f(3) 的返回值是( ) int f(int n) { if (n == 1) return 1; return n * f(n-1); }

a)

3

b)

6

c)

9

d)

12

5.

迭代法与递归法的本质区别在于( )

a)

迭代法处理的问题规模更小

b)

迭代法通过循环实现,不依赖函数递归调用

c)

迭代法一定比递归法代码更简洁

d)

迭代法只能处理数值计算问题

6.

下列问题中,最适合用迭代法解决的是( )

a)

计算斐波那契数列的第 100 项

b)

求解汉诺塔问题

c)

二叉树的后序遍历

d)

快速排序

7.

暴力法的主要特点是( )

a)

时间复杂度极低,效率高

b)

不依赖问题的特性,直接枚举所有可能解

c)

空间复杂度始终为 O(1)

d)

适用于所有大规模数据场景

8.

下列问题中,暴力法在小规模数据下可接受的是( )

a)

在无序数组中查找是否存在某个目标值

b)

求解大规模图的最短路径

c)

对 100 万条数据进行排序

d)

破译 16 位密码

9.

分治法的基本步骤不包括( )

a)

分解:将原问题分解为若干子问题

b)

求解:递归求解每个子问题

c)

合并:将子问题的解合并为原问题的解

d)

枚举:逐一验证所有子问题的解

10.

快速排序算法的核心思想是( )

a)

迭代

b)

暴力

c)

分治法

d)

贪心法

11.

贪心法解决问题的关键在于( )

a)

每次选择当前最优解, 希望最终得到全局最优解

b)

必须先求解所有子问题,再合并结果

c)

依赖动态规划存储中间结果

d)

适合处理所有优化问题

12.

下列问题中,不能用贪心法正确求解的是( )

a)

活动安排问题

b)

零钱兑换问题(如用 1、5、10 元兑换指定金额,求最少张数)

c)

最长公共子序列问题

d)

哈夫曼编码问题

13.

动态规划法与分治法的主要区别在于( )

a)

动态规划法不需要分解问题

b)

动态规划法的子问题存在重叠,需存储子问题解避免重复计算

c)

动态规划法只能处理数值问题

d)

动态规划法的时间复杂度更高

14.

下列关于动态规划中“最优子结构”的描述,正确的是( )

a)

原问题的最优解与子问题的解无关

b)

原问题的最优解包含子问题的最优解

c)

子问题的解必须完全相同

d)

子问题的规模必须相同