算法设计与分析考试题及答案
《计算机算法设计与分析》习题及答案
《计算机算法设计与分析》习题及答案
一.选择题
1、二分搜索算法是利用( A )实现的算法。
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
2、下列不是动态规划算法基本步骤的是( A )。
A、找出最优解的性质
B、构造最优解
C、算出最优解
D、定义最优解
3、最大效益优先是( A )的一搜索方式。
A、分支界限法
B、动态规划法
C、贪心法
D、回溯法
4. 回溯法解旅行售货员问题时的解空间树是( A )。
A、子集树
B、排列树
C、深度优先生成树
D、广度优先生成树
5.下列算法中通常以自底向上的方式求解最优解的是( B )。
A、备忘录法
B、动态规划法
C、贪心法
D、回溯法
6、衡量一个算法好坏的标准是( C )。
A 运行速度快
B 占用空间少
C 时间复杂度低
D 代码短
7、以下不可以使用分治法求解的是( D )。
A 棋盘覆盖问题
B 选择问题
C 归并排序
D 0/1背包问题
8. 实现循环赛日程表利用的算法是( A )。
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
9.下面不是分支界限法搜索方式的是( D )。
A、广度优先
B、最小耗费优先
C、最大效益优先
D、深度优先
10.下列算法中通常以深度优先方式系统搜索问题解的是( D )。
A、备忘录法
B、动态规划法
C、贪心法
D、回溯法
11.备忘录方法是那种算法的变形。( B )
A、分治法
B、动态规划法
C、贪心法
D、回溯法
12.哈夫曼编码的贪心算法所需的计算时间为( B )。
A、O(n2n)
B、O(nlogn)
C、O(2n)
D、O(n)
13.分支限界法解最大团问题时,活结点表的组织形式是( B )。
算法设计与分析试题及答案
1. 按分治策略求解棋盘覆盖问题时,对于如图所示的24×24的特殊棋盘,共需要多少个L 型骨
牌;并在棋盘上填写L 型骨牌的覆盖情况。
2. 假设有7个物品,给出重量和价值。若这些物品均不能被分割,且背包容量M =140,使用回
溯方法求解此0-1背包问题。请画出状态空间搜索树。
3. 假设有7个物品,它们的重量和价值如下表所示。若这些物品均可以被分割,且背包容量M
=140,使用贪心算法求解此背包问题。请写出求解策略和求解过程。 W (35,30,50,60,40,10,25)p (10,40,30,50,35,40,30)
4. 在给出的电路板中,阴影部分是已作了封锁标记的方格,请按照队列式分支限界法在图中确定
a 到
b 的最短布线方案,要求布线时只能沿直线或直角进行,在图中标出求得最优解时各方格情况。
5. 画出字符表的哈夫曼编码对应的二叉树。
6. 已知1()*()i i k k ij r r A a +=,k =1,2,3,4,5,6,r 1=5,r 2=10,r 3=3,r 4=8,r 5=5,r 6=20,r 7=6,求
矩阵链积A 1×A 2×A 3×A 4×A 5×A 6的最佳求积顺序。
7. 给出城市网络图,售货员要从城市1出发,经过所有城市回到城市1,画出该问题的解空间树,
描述出用优先队列式分支限界法求解时的搜索情况。表示出优先队列、当前扩展结点等的变化情况。
8. 依据优先队列式分支限界法,求从s 点到t 点的单源最短路径,画出求得最优解的解空间树。
一、假设有7个物品,它们的重量和价值如下表所示。若这些物品均不能被分割,且背包容量M
算法设计与分析考试题及答案-算法设计与优化答案
1.一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性:_________,________,________,__________,__________。
2.算法的复杂性有_____________和___________之分,衡量一个算法
好坏的标准是______________________。
3.某一问题可用动态规划算法求解的显著特征是
____________________________________。
4.若序列X={B,C,A,D,B,C,D},Y={A,C,B,A,B,D,C,D},请给出序列X 和Y的一个最长公共子序列_____________________________。
5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含___________。
6.动态规划算法的基本思想是将待求解问题分解成若干____________,先求解___________,然后从这些____________的解得到原问题的解。
7.以深度优先方式系统搜索问题解的算法称为_____________。
8.0-1背包问题的回溯算法所需的计算时间为_____________,用动态规划算法所需的计算时间为____________。
9.动态规划算法的两个基本要素是___________和___________。
10.二分搜索算法是利用_______________实现的算法。
二、综合题(50分)
1.写出设计动态规划算法的主要步骤。
算法分析与设计考试复习题及参考答案
参考答案
一、简要回答下列问题 : 1. 确定性、可实现性、输入、输出、有穷性 2. 分析算法占用计算机资源的情况,对算法做出比较和评价,设计 出额更好的算法。 3. 算法的时间复杂性与问题的规模相关,是问题大小n的函数。 4.当问题的规模n趋向无穷大时,影响算法效率的重要因素是T(n)的 数量级,而其他因素仅是使时间复杂度相差常数倍,因此可以用T(n) 的数量级(阶)评价算法。时间复杂度T(n)的数量级(阶)称为渐进时间 复杂性。 5. 最坏情况下的时间复杂性和平均时间复杂性考察的是n固定时,不 同输入实例下的算法所耗时间。最坏情况下的时间复杂性取的输入实 例中最大的时间复杂度: W(n) = max{ T(n,I) } , I∈Dn 平均时间复杂性是所有输入实例的处理时间与各自概率的乘积和: A(n) =∑P(I)T(n,I) I∈Dn 6. 设输入是一个按非降次序排列的元素表A[i:j] 和x,选取 A[(i+j)/2]与x比较,如果A[(i+j)/2]=x,则返回(i+j)/2,如果 A[(i+j)/2]<x,则A[i:(i+j)/2-1]找x,否则在A[ (i+j)/2+1:j] 找x。上述过程被反复递归调用。 回溯法的搜索特点是什么 7. 不相同。目标函数:获得最大利润。最优量度:最大利润/重 量比。 8. 问题的解可以表示为n元组:(x1,x2,……xn),xi∈Si, Si为 有穷集合,xi∈Si, (x1,x2,……xn)具备完备性,即(x1,x2,……xn) 是合理的,则(x1,x2,……xi)(i<n)一定合理。 9. 在解空间树上跳跃式地深度优先搜索,即用判定函数考察x[k] 的取值,如果x[k]是合理的就搜索x[k]为根节点的子树,如果x[k]取完 了所有的值,便回溯到x[k-1]。 10. 将第K行的皇后分别与前k-1行的皇后比较,看是否与它们相 容,如果不相容就返回false,测试完毕则返回true。 11 . 子问题的规模还很大时,必须继续使用分治法,反复分治, 必然要用到递归。 12 最坏情况下的时间复杂性决定算法的优劣,并且最坏情况下的 时间复杂性较平均时间复杂性游可操作性。 13 .T(n)是某算法的时间复杂性函数,f(n)是一简单函数,存在正 整数No和C,n〉No,有T(n)<f(n),这种关系记作T(n)=O(f(n))。 14 .二分检索算法的最多的比较次数为 log n 。
《算法设计与分析》考试题目及答案
《算法分析与设计》期末复习题
一、选择题
1.应用Johnson法则的流水作业调度采用的算法是(D)
A. 贪心算法
B. 分支限界法
C.分治法
D. 动态规划算法
2.Hanoi塔问题如下图所示。现要求将塔座A上的的所有圆盘移到塔座B上,并仍按同样顺序叠置。移动圆盘时遵守Hanoi塔问题的移动规则。由此设计出解Hanoi塔问题的递归算法正确的为:(B)
Hanoi塔
4. 算法分析中,记号O表示(B),记号Ω表示(A),记号Θ表示(D)。
A.渐进下界
B.渐进上界
C.非紧上界
D.紧渐进界
E.非紧下界
5. 以下关于渐进记号的性质是正确的有:(A)
A.f(n)(g(n)),g(n)(h(n))f(n)(h(n))
=Θ=Θ⇒=Θ
B. f(n)O(g(n)),g(n)O(h(n))h(n)O(f(n))
==⇒=
C. O(f(n))+O(g(n)) = O(min{f(n),g(n)})
D. f(n)O(g(n))g(n)O(f(n))
=⇔=
6.能采用贪心算法求最优解的问题,一般具有的重要性质为:(A)
A. 最优子结构性质与贪心选择性质
B.重叠子问题性质与贪心选择性质
C.最优子结构性质与重叠子问题性质
D. 预排序与递归调用
7. 回溯法在问题的解空间树中,按(D)策略,从根结点出发搜索解空间树。广度优先 B. 活结点
优先 C.扩展结点优先 D. 深度优先
8. 分支限界法在问题的解空间树中,按(A)策略,从根结点出发搜索解空间树。 A.广度优先 B. 活结点优先 C.扩展结点优先 D. 深度优先
9. 程序块(A)是回溯法中遍历排列树的算法框架程序。
算法设计与分析考试题及答案
1.一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性:_________,________,________,__________,__________。
2.算法的复杂性有_____________和___________之分,衡量一个算法
好坏的标准是______________________。
3.某一问题可用动态规划算法求解的显著特征是
____________________________________。
4.若序列X={B,C,A,D,B,C,D},Y={A,C,B,A,B,D,C,D},请给出序列X 和Y的一个最长公共子序列_____________________________。
5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含___________。
6.动态规划算法的基本思想是将待求解问题分解成若干____________,先求解___________,然后从这些____________的解得到原问题的解。
7.以深度优先方式系统搜索问题解的算法称为_____________。
8.0-1背包问题的回溯算法所需的计算时间为_____________,用动态规划算法所需的计算时间为____________。
9.动态规划算法的两个基本要素是___________和___________。
10.二分搜索算法是利用_______________实现的算法。
二、综合题(50分)
1.写出设计动态规划算法的主要步骤。
算法设计与分析试卷及答案
湖南科技学院二○年学期期末考试
信息与计算科学专业年级《算法设计与分析》试题
考试类型:开卷试卷类型:C 卷考试时量:120分钟
性的阶为
结点的是 指1.试述回溯法的基本思想及用回溯法解题的步骤。
2.有8个作业{1,2,…,8}要在由2台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1给出一个最优调度方案,使得从第一个作业在机器M1上开始加工,到最后一个作业在机器M2上加工完成所需的时间最少,并计算所需的最少时间。 答:
最优调度方案为
所需的最少时间为:_______________________
3.根据优先队列式分支限界法,求下图中从v1点到v9点的单源最短路径,请画出求得最优解的解空间树。要求中间被舍弃的结点用×标记,获得中间解的结点用单圆圈○框起(如),最优解用双圆圈◎框起。
三、算法填空(每空2分,共计10分)
设R={r1,r2,...,r n}是要进行排列的n个元素,其中元素r1,r2,...,r n可能相同,试设计一个算法,列出R的所有不同排列,并给出不同排列的总数。算法如下,填写缺失的语句。
template
Swap(R[k],R[i]);
}
}
}
四、算法设计(共计15分)
设有n个程序{1,2,3...,n}要存放在长度为L的磁带上。程序i存放在磁带上的长度是Li,1≤i≤n。程序存储问题要求确定这n个程序在磁带上的一个存储方案,使得能够在磁带上存储尽可能多的程序,在保证存储最多程序的前提下还要求磁带的利用率达到最大。
(1)给出求解存储最多程序的算法,并证明算法的正确性;
算法设计和分析试题(卷)与答案解析
湖南科技学院二○ 年 学期期末考试
信息与计算科学专业 年级《算法设计与分析》 试题
考试类型:开卷 试卷类型:C 卷 考试时量:120 分钟 一、填空题(每小题3 分,共计30 分)
1. 用O 、Ω和θ表示函数f 与g 之间的关系______________________________。
()()log log f n n n g n n ==
2. 算法的时间复杂性为1,
1()8(3/7),
2
n f n f n n n =⎧=⎨
+≥⎩,则算法的时间复杂性的阶
为__________________________。
3. 快速排序算法的性能取决于______________________________。
4. 算法是_______________________________________________________。
5. 在对问题的解空间树进行搜索的方法中,一个活结点最多有一次机会成为活结点的
是_________________________。
6. 在算法的三种情况下的复杂性中,可操作性最好且最有实际价值的是_____情况下的时间复杂性。
7. 大Ω符号用来描述增长率的下限,这个下限的阶越___________,结果就越有价值。。 8. ____________________________是问题能用动态规划算法求解的前提。
9. 贪心选择性质是指________________________________________________________ ____________________________________________________________。
算法设计与分析试卷及答案
湖南科技学院二○年学期期末考试信息与计算科学专业年级《算法设计与分析》试题
考试类型:开卷试卷类型:C卷考试时量:120分钟
。
9.贪心选择性质是指
________________________________________________________________
____________________________________________________。
10.回溯法在问题的解空间树中,按______________策略,从根结点出发搜
索解空间树。
二、简答题(每小题10分,共计30分)
1.试述回溯法的基本思想及用回溯法解题的步骤。
2.有8个作业{1,2,…,8}要在由2台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。M1和M2
后一个作业在机器M2上加工完成所需的时间最少,并计算所需的最少时间。
}
template<typenameType>
voidPerm(TypeR[],intk,intn,int&sum){//n为元素个数,sum记录不同排列的总数
if(k==n){
______________________;//3
for(inti=1;i<=n;i++)
cout<<___________________;//4
cout<<endl;
}else{
for(inti=k;i<=n;i++)
if(ok(R,k,i)){
Swap(R[k],R[i]);
Perm(_________________________);//5
算法设计与分析考试题目及答案
算法设计与分析考试题目及答案
Revised at 16:25 am on June 10, 2021
I hope tomorrow will definitely be better
算法分析与设计期末复习题
一、 选择题
1.应用Johnson 法则的流水作业调度采用的算法是D
A. 贪心算法
B. 分支限界法
C.分治法
D. 动态规划算法
塔问题如下图所示;现要求将塔座A 上的的所有圆盘移到塔座B 上,并仍按同样顺序叠置;移动圆盘时遵守Hanoi 塔问题的移动规则;由此设计出解Hanoi 塔问题的递归算法正确的为:B
3. 动态规划算法的基本要素为C A. 最优子结构性质与贪心选择性质 B .重叠子问题性质与贪心选择性质 C .最优子结构性质与重叠子问题性质 D. 预排序与递归调用
4. 算法分析中,记号O 表示B , 记号Ω表示A , 记号Θ表示D ; A.渐进下界 B.渐进上界 C.非紧上界 D.紧渐进界 E.非紧下界
5. 以下关于渐进记号的性质是正确的有:A A.f (n)(g(n)),g(n)(h(n))f (n)(h(n))=Θ=Θ⇒=Θ B. f (n)O(g(n)),g(n)O(h(n))h(n)O(f (n))==⇒= C. Ofn+Ogn = Omin{fn,gn} D. f (n)O(g(n))g(n)O(f (n))=⇔=
Hanoi 塔
A. void hanoiint n, int A, int C, int B { if n > 0 {
hanoin-1,A,C, B; moven,a,b;
计算机算法设计与分析习题及答案
《计算机算法设计与分析》习题及答案
一.选择题
1、二分搜索算法是利用( A )实现的算法。
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
2、下列不是动态规划算法基本步骤的是( A )。
A、找出最优解的性质
B、构造最优解
C、算出最优解
D、定义最优解
3、最大效益优先是( A )的一搜索方式。
A、分支界限法
B、动态规划法
C、贪心法
D、回溯法
4. 回溯法解旅行售货员问题时的解空间树是( A )。
A、子集树
B、排列树
C、深度优先生成树
D、广度优先生成树
5.下列算法中通常以自底向上的方式求解最优解的是( B )。
A、备忘录法
B、动态规划法
C、贪心法
D、回溯法
6、衡量一个算法好坏的标准是( C )。
A 运行速度快
B 占用空间少
C 时间复杂度低
D 代码短
7、以下不可以使用分治法求解的是( D )。
A 棋盘覆盖问题
B 选择问题
C 归并排序
D 0/1背包问题
8. 实现循环赛日程表利用的算法是( A )。
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
9.下面不是分支界限法搜索方式的是( D )。
A、广度优先
B、最小耗费优先
C、最大效益优先
D、深度优先
10.下列算法中通常以深度优先方式系统搜索问题解的是( D )。
A、备忘录法
B、动态规划法
C、贪心法
D、回溯法
11.备忘录方法是那种算法的变形。( B )
A、分治法
B、动态规划法
C、贪心法
D、回溯法
12.哈夫曼编码的贪心算法所需的计算时间为( B )。
A、O(n2n)
B、O(nlogn)
C、O(2n)
D、O(n)
13.分支限界法解最大团问题时,活结点表的组织形式是( B )。
《算法设计与分析》试卷及答案
《算法设计与分析》试卷及答案
算法设计与分析考试复习试卷
《算法设计与分析》试卷1
一、多项选择题(每空2分,共20分):
1、以下关于算法设计问题的叙述中正确的是__________。
A、计算机与数值问题的求解——方程式求根、插值问题、数值积分、函数逼近等有关
B、利用计算机无法解决非数值问题
C、计算机在解决分类、语言翻译、图形识别、解决高等代数和组合分析等方面的数学问题、定理证明、公式推导乃至日常生活中各种过程的模拟等问题中,主要进行的是判断、比较,而不是算术运算
D、算法设计与分析主要研究对象是非数值问题,当然也包含某些数值问题
2、算法的特征包括_________。
A、有穷性
B、确定性
C、输入和输出
D、能行性或可行性
3、以下描述是有关算法设计的基本步骤:
①问题的陈述②算法分析③模型的拟制④算法的实现
⑤算法的详细设计⑥文档的编制,应与其它环节交织在一起
其中正确的顺序是__________。
A、①②③④⑤⑥
B、①③⑤②④⑥
C、②④①③⑤⑥
D、⑥①③⑤②④
4、以下说法正确的是__________。
A、数学归纳法可以证明算法终止性
B、良序原则是证明算法的正确性的有力工具
C、x = 小于或等于x的最大整数(x的低限)
D、x = 小于或等于x的最大整数(x的高限)
5、汉诺塔(Hanoi)问题中令h(n)为从A移动n个金片到C 上所用的次数,则递归方程
为__________,其初始条件为__________,将n个金片从A柱移到C柱上的移动次数是__________;设菲波那契(Fibonacci)数列中Fn为第n个月时兔子的对数,则有递归方程为__________,其中F1=F2=__________。
算法设计与分析考试题及答案-算法设计与优化答案
1.一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性:_________,________,________,__________,__________。
2.算法的复杂性有_____________和___________之分,衡量一个算法
好坏的标准是______________________。
3.某一问题可用动态规划算法求解的显著特征是
____________________________________。
4.若序列X={B,C,A,D,B,C,D},Y={A,C,B,A,B,D,C,D},请给出序列X 和Y的一个最长公共子序列_____________________________。
5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含___________。
6.动态规划算法的基本思想是将待求解问题分解成若干____________,先求解___________,然后从这些____________的解得到原问题的解。
7.以深度优先方式系统搜索问题解的算法称为_____________。
8.0-1背包问题的回溯算法所需的计算时间为_____________,用动态规划算法所需的计算时间为____________。
9.动态规划算法的两个基本要素是___________和___________。
10.二分搜索算法是利用_______________实现的算法。
二、综合题(50分)
1.写出设计动态规划算法的主要步骤。
算法设计与分析试题及答案
1. 按分治策略求解棋盘覆盖问题时,对于如图所示的24×24的特殊棋盘,共需要多少个L 型骨
牌;并在棋盘上填写L 型骨牌的覆盖情况。
2. 假设有7个物品,给出重量和价值。若这些物品均不能被分割,且背包容量M =140,使用回
溯方法求解此0-1背包问题。请画出状态空间搜索树。
3. 假设有7个物品,它们的重量和价值如下表所示。若这些物品均可以被分割,且背包容量M
=140,使用贪心算法求解此背包问题。请写出求解策略和求解过程。 W (35,30,50,60,40,10,25)p (10,40,30,50,35,40,30)
4. 在给出的电路板中,阴影部分是已作了封锁标记的方格,请按照队列式分支限界法在图中确定
a 到
b 的最短布线方案,要求布线时只能沿直线或直角进行,在图中标出求得最优解时各方格情况。
5. 画出字符表的哈夫曼编码对应的二叉树。
6. 已知1()*()i i k k ij r r A a +=,k =1,2,3,4,5,6,r 1=5,r 2=10,r 3=3,r 4=8,r 5=5,r 6=20,r 7=6,求
矩阵链积A 1×A 2×A 3×A 4×A 5×A 6的最佳求积顺序。
7. 给出城市网络图,售货员要从城市1出发,经过所有城市回到城市1,画出该问题的解空间树,
描述出用优先队列式分支限界法求解时的搜索情况。表示出优先队列、当前扩展结点等的变化情况。
8. 依据优先队列式分支限界法,求从s 点到t 点的单源最短路径,画出求得最优解的解空间树。
一、假设有7个物品,它们的重量和价值如下表所示。若这些物品均不能被分割,且背包容量M
《计算机算法设计与分析》习题及答案
《计算机算法设计与分析》习题及答案
一.选择题
1、二分搜索算法是利用( A )实现的算法。
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
2、下列不是动态规划算法基本步骤的是( A )。
A、找出最优解的性质
B、构造最优解
C、算出最优解
D、定义最优解
3、最大效益优先是( A )的一搜索方式。
A、分支界限法
B、动态规划法
C、贪心法
D、回溯法
4. 回溯法解旅行售货员问题时的解空间树是( A )。
A、子集树
B、排列树
C、深度优先生成树
D、广度优先生成树
5.下列算法中通常以自底向上的方式求解最优解的是( B )。
A、备忘录法
B、动态规划法
C、贪心法
D、回溯法
6、衡量一个算法好坏的标准是( C )。
A 运行速度快
B 占用空间少
C 时间复杂度低
D 代码短
7、以下不可以使用分治法求解的是( D )。
A 棋盘覆盖问题
B 选择问题
C 归并排序
D 0/1背包问题
8. 实现循环赛日程表利用的算法是( A )。
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
9.下面不是分支界限法搜索方式的是( D )。
A、广度优先
B、最小耗费优先
C、最大效益优先
D、深度优先
10.下列算法中通常以深度优先方式系统搜索问题解的是( D )。
A、备忘录法
B、动态规划法
C、贪心法
D、回溯法
11.备忘录方法是那种算法的变形。( B )
A、分治法
B、动态规划法
C、贪心法
D、回溯法
12.哈夫曼编码的贪心算法所需的计算时间为( B )。
A、O(n2n)
B、O(nlogn)
C、O(2n)
D、O(n)
13.分支限界法解最大团问题时,活结点表的组织形式是( B )。
算法设计与分析试题及答案
1. 按分治策略求解棋盘覆盖问题时,对于如图所示的24×24的特殊棋盘,共需要多少个L 型骨
牌;并在棋盘上填写L 型骨牌的覆盖情况。
2. 假设有7个物品,给出重量和价值。若这些物品均不能被分割,且背包容量M =140,使用回
溯方法求解此0-1背包问题。请画出状态空间搜索树。
3. 假设有7个物品,它们的重量和价值如下表所示。若这些物品均可以被分割,且背包容量M
=140,使用贪心算法求解此背包问题。请写出求解策略和求解过程。 W (35,30,50,60,40,10,25)p (10,40,30,50,35,40,30)
4. 在给出的电路板中,阴影部分是已作了封锁标记的方格,请按照队列式分支限界法在图中确定
a 到
b 的最短布线方案,要求布线时只能沿直线或直角进行,在图中标出求得最优解时各方格情况。
5. 画出字符表的哈夫曼编码对应的二叉树。
6. 已知1()*()i i k k ij r r A a +=,k =1,2,3,4,5,6,r 1=5,r 2=10,r 3=3,r 4=8,r 5=5,r 6=20,r 7=6,求
矩阵链积A 1×A 2×A 3×A 4×A 5×A 6的最佳求积顺序。
7. 给出城市网络图,售货员要从城市1出发,经过所有城市回到城市1,画出该问题的解空间树,
描述出用优先队列式分支限界法求解时的搜索情况。表示出优先队列、当前扩展结点等的变化情况。
8. 依据优先队列式分支限界法,求从s 点到t 点的单源最短路径,画出求得最优解的解空间树。
一、假设有7个物品,它们的重量和价值如下表所示。若这些物品均不能被分割,且背包容量M
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性:_________,________,________,__________,__________。
2.算法的复杂性有_____________和___________之分,衡量一个算法
好坏的标准是______________________。
3.某一问题可用动态规划算法求解的显著特征是
____________________________________。
4.若序列X={B,C,A,D,B,C,D},Y={A,C,B,A,B,D,C,D},请给出序列X 和Y的一个最长公共子序列_____________________________。
5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含___________。
6.动态规划算法的基本思想是将待求解问题分解成若干____________,先求解___________,然后从这些____________的解得到原问题的解。
7.以深度优先方式系统搜索问题解的算法称为_____________。
8.0-1背包问题的回溯算法所需的计算时间为_____________,用动态规划算法所需的计算时间为____________。
9.动态规划算法的两个基本要素是___________和___________。
10.二分搜索算法是利用_______________实现的算法。
二、综合题(50分)
1.写出设计动态规划算法的主要步骤。
2.流水作业调度问题的johnson算法的思想。
3.若n=4,在机器M1和M2上加工作业i所需的时间分别为a i和b i,且(a1,a2,a3,a4)=(4,5,12,10),(b1,b2,b3,b4)=(8,2,15,9)求4个作业的最优调度方案,并计算最优值。
4.使用回溯法解0/1背包问题:n=3,C=9,V={6,10,3},W={3,4,4},其解空间有长度为3的0-1向量组成,要求用一棵完全二叉树表示其解空间(从根出发,左1右0),并画出其解空间树,计算其最优值及最优解。
5.设S={X1,X2,···,X n}是严格递增的有序集,利用二叉树的结点来存储S中的元素,在表示S的二叉搜索树中搜索一个元素X,返回的结果有两种情形,(1)在二叉搜索树的内结点中找到X=X i,其概率为b i。(2)在二叉搜索树的叶结点中确定X∈(X i,X i+1),其概率为a i。在表示S的二叉搜索树T中,设存储元素X i的结点深度为C i;叶结点(X i,X i+1)的结点深度为d i,则二叉搜索树T的平均路长p为多少?假设二叉搜索树T[i][j]={X i,X i+1,···,X j}最优值为m[i][j],W[i][j]= a i-1+b i+···+b j+a j,则m[i][j](1<=i<=j<=n)递归关系表达式为什么?
6.描述0-1背包问题。
三、简答题(30分)
1.流水作业调度中,已知有n个作业,机器M1和M2上加工作业i所需的时间分别为a i和b i,请写出流水作业调度问题的johnson法则中对a i和b i的排序算法。(函数名可写为sort(s,n))
2.最优二叉搜索树问题的动态规划算法(设函数名binarysearchtree))
答案:
一、填空
1.确定性有穷性可行性 0个或多个输入一个或多个输出
2.时间复杂性空间复杂性时间复杂度高低
3. 该问题具有最优子结构性质
4.{BABCD}或{CABCD}或{CADCD}
5.一个(最优)解
6.子问题子问题子问题
7.回溯法
8. o(n*2n) o(min{nc,2n})
9.最优子结构重叠子问题
10.动态规划法
二、综合题
1.①问题具有最优子结构性质;②构造最优值的递归关系表达式;
③最优值的算法描述;④构造最优解;
2. ①令N1={i|a i=b i};②将N1中作业按a i的非减序排序得到N1’,将N2中作业按b i的非增序排序得到N2’;③N1’中作业接N2’中作业就构成了满足Johnson法则的最优调度。
3.步骤为:N1={1,3},N2={2,4};
N1’={1,3}, N2’={4,2};
最优值为:38
4.解空间为{(0,0,0),(0,1,0),(0,0,1),(1,0,0),(0,1,1),(1,0,1),
(1,1,0),(1,1,1)}。 解空间树为:
该问题的最优值为:16 最优解为:(1,1,0) 5.二叉树T 的平均路长P=∑=+n i 1
Ci)(1*bi +∑=n
j 0
dj *aj
{
m[i][j]=0 (i>j)
6.已知一个背包的容量为C ,有n 件物品,物品i 的重量为W i ,价值为V i ,求应如何选择装入背包中的物品,使得装入背包中物品的总价值最大。 三、简答题
1.
void sort(flowjope s[],int n) { int i,k,j,l;
m[i][j]=W[i][j]+min{m[i][k]+m[k+1][j]} (1<=i<=j<=n,m[i][i-1]=0)
for(i=1;i<=n-1;i++)//-----选择排序
{
k=i;
while(k<=n&&s[k].tag!=0) k++;
if(k>n) break;//-----没有a i,跳出
else
{
for(j=k+1;j<=n;j++)
if(s[j].tag==0)
if(s[k].a>s[j].a) k=j;
swap(s[i].index,s[k].index);
swap(s[i].tag,s[k].tag); }
}
l=i;//-----记下当前第一个b i的下标
for(i=l;i<=n-1;i++)
{
k=i;
for(j=k+1;j<=n;j++)
if(s[k].b
swap(s[i].index,s[k].index); //-----只移动index和tag swap(s[i].tag,s[k].tag); }
}