算法设计与分析考试题及答案
一、填空题(20 分)
1.一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此
外,算法还应具有以下五个重要特性:确定性 有穷性 可行性 0 个或多个输入 一个或多个输
出
2.算法的复杂性有时间复杂性 空间复杂性之分,衡量一个算法好坏的标准是 时间复杂度高低
3.某一问题可用动态规划算法求解的显著特征是 该问题具有最优子结构性质
4.若序列 X={B,C,A,D,B,C,D},Y={A,C,B,A,B,D,C,D},请给出序列 X 和 Y 的一个最长公共子序列
{BABCD}或{CABCD}或{CADCD}
5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含一个(最优)解
6.动态规划算法的基本思想是将待求解问题分解成若干_子问题 ,先求解_子问题 ,然后从这些子
问题 的解得到原问题的解。
7.以深度优先方式系统搜索问题解的算法称为回溯法
8.0-1 背包问题的回溯算法所需的计算时间为 o(n*2
n
) ,用动态规划算法所需的计算时间为
o(min{nc,2
n
})
9.动态规划算法的两个基本要素是最优子结构 _和重叠子问题
10.二分搜索算法是利用动态规划法实现的算法。
二、综合题(50 分)
1.写出设计动态规划算法的主要步骤。
①问题具有最优子结构性质;②构造最优值的递归关系表达式; ③最优值的算法描述;④构造最
优解;
2. 流水作业调度问题的 johnson 算法的思想。
①令 N
1
={i|a
i
<b
i
},N
2
={i|a
i
>=b
i
};②将 N
1
中作业按 a
i
的非减序排序得到 N
1
’,将 N
2
中作业按 b
i
的非增序排序得到 N
2
’;③N
1
’中作业接 N
2
’中作业就构成了满足 Johnson 法则的最优调度。
3. 若 n=4 , 在 机 器 M1 和 M2 上 加 工 作 业 i 所 需 的 时 间 分 别 为 a
i
和 b
i
, 且
(a
1
,a
2
,a
3
,a
4
)=(4,5,12,10),(b
1
,b
2
,b
3
,b
4
)=(8,2,15,9)求 4 个作业的最优调度方案,并计算最优值。
步骤为:N1={1,3},N2={2,4};
N
1
’={1,3}, N
2
’={4,2};
最优值为:38
4. 使用回溯法解 0/1 背包问题:n=3,C=9,V={6,10,3},W={3,4,4},其解空间有长度为 3 的 0-1 向
量组成,要求用一棵完全二叉树表示其解空间(从根出发,左 1 右 0),并画出其解空间树,计算
其最优值及最优解。
解空间为{(0,0,0),(0,1,0),(0,0,1),(1,0,0),(0,1,1),(1,0,1),
(1,1,0),(1,1,1)}。
解空间树为: