NEW
Font size
Worksheets算法综合测试题
Total questions: 14
Worksheet time: 12mins
下列关于算法的基本特征描述中,错误的是( )
可行性:算法的每一步操作都必须是可执行的
确定性:算法的每一步都应有确切的定义,无歧义
无穷性:算法可以无限循环执行以处理复杂问题
有穷性:算法必须在有限步骤内结束
算法的时间复杂度主要用于衡量( )
算法程序的长度
算法执行过程中所需的存储空间
算法执行所需的时间与数据规模的关系
算法的可读性
下列关于递归算法的描述中,正确的是( )
递归算法一定比非递归算法效率更高
递归算法的核心是将大问题分解为与原问题结构相同的小问题
递归算法不需要终止条件,可自行结束
所有问题都适合用递归算法解决
执行以下递归函数,调用 f(3) 的返回值是( ) int f(int n) { if (n == 1) return 1; return n * f(n-1); }
3
6
9
12
迭代法与递归法的本质区别在于( )
迭代法处理的问题规模更小
迭代法通过循环实现,不依赖函数递归调用
迭代法一定比递归法代码更简洁
迭代法只能处理数值计算问题
下列问题中,最适合用迭代法解决的是( )
计算斐波那契数列的第 100 项
求解汉诺塔问题
二叉树的后序遍历
快速排序
暴力法的主要特点是( )
时间复杂度极低,效率高
不依赖问题的特性,直接枚举所有可能解
空间复杂度始终为 O(1)
适用于所有大规模数据场景
下列问题中,暴力法在小规模数据下可接受的是( )
在无序数组中查找是否存在某个目标值
求解大规模图的最短路径
对 100 万条数据进行排序
破译 16 位密码
分治法的基本步骤不包括( )
分解:将原问题分解为若干子问题
求解:递归求解每个子问题
合并:将子问题的解合并为原问题的解
枚举:逐一验证所有子问题的解
快速排序算法的核心思想是( )
迭代
暴力
分治法
贪心法
贪心法解决问题的关键在于( )
每次选择当前最优解, 希望最终得到全局最优解
必须先求解所有子问题,再合并结果
依赖动态规划存储中间结果
适合处理所有优化问题
下列问题中,不能用贪心法正确求解的是( )
活动安排问题
零钱兑换问题(如用 1、5、10 元兑换指定金额,求最少张数)
最长公共子序列问题
哈夫曼编码问题
动态规划法与分治法的主要区别在于( )
动态规划法不需要分解问题
动态规划法的子问题存在重叠,需存储子问题解避免重复计算
动态规划法只能处理数值问题
动态规划法的时间复杂度更高
下列关于动态规划中“最优子结构”的描述,正确的是( )
原问题的最优解与子问题的解无关
原问题的最优解包含子问题的最优解
子问题的解必须完全相同
子问题的规模必须相同
