算法设计期末考试试题-教师版.pdf

上传人:wj 文档编号:14648249 上传时间:2023-06-25 格式:PDF 页数:14 大小:416.16KB
下载 相关 举报
算法设计期末考试试题-教师版.pdf_第1页
第1页 / 共14页
算法设计期末考试试题-教师版.pdf_第2页
第2页 / 共14页
算法设计期末考试试题-教师版.pdf_第3页
第3页 / 共14页
算法设计期末考试试题-教师版.pdf_第4页
第4页 / 共14页
算法设计期末考试试题-教师版.pdf_第5页
第5页 / 共14页
算法设计期末考试试题-教师版.pdf_第6页
第6页 / 共14页
算法设计期末考试试题-教师版.pdf_第7页
第7页 / 共14页
算法设计期末考试试题-教师版.pdf_第8页
第8页 / 共14页
算法设计期末考试试题-教师版.pdf_第9页
第9页 / 共14页
算法设计期末考试试题-教师版.pdf_第10页
第10页 / 共14页
算法设计期末考试试题-教师版.pdf_第11页
第11页 / 共14页
算法设计期末考试试题-教师版.pdf_第12页
第12页 / 共14页
算法设计期末考试试题-教师版.pdf_第13页
第13页 / 共14页
算法设计期末考试试题-教师版.pdf_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

算法设计期末考试试题-教师版.pdf

《算法设计期末考试试题-教师版.pdf》由会员分享,可在线阅读,更多相关《算法设计期末考试试题-教师版.pdf(14页珍藏版)》请在冰点文库上搜索。

算法设计期末考试试题-教师版.pdf

算法分析与设计期末复习题算法分析与设计期末复习题一、选择题1.应用Johnson法则的流水作业调度采用的算法是(D)A.贪心算法B.分支限界法C.分治法D.动态规划算法2.Hanoi塔问题如下图所示。

现要求将塔座A上的的所有圆盘移到塔座B上,并仍按同样顺序叠置。

移动圆盘时遵守Hanoi塔问题的移动规则。

由此设计出解Hanoi塔问题的递归算法正确的为:

(B)Hanoi塔塔A.voidhanoi(intn,intA,intC,intB)if(n0)hanoi(n-1,A,C,B);move(n,a,b);hanoi(n-1,C,B,A);B.voidhanoi(intn,intA,intB,intC)if(n0)hanoi(n-1,A,C,B);move(n,a,b);hanoi(n-1,C,B,A);C.voidhanoi(intn,intC,intB,intA)if(n0)hanoi(n-1,A,C,B);move(n,a,b);hanoi(n-1,C,B,A);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.O(f(n)+O(g(n)=O(minf(n),g(n)D.f(n)O(g(n)g(n)O(f(n)6.能采用贪心算法求最优解的问题,一般具有的重要性质为:

(A)A.最优子结构性质与贪心选择性质B重叠子问题性质与贪心选择性质D.voidhanoi(intn,intC,intA,intB)if(n0)hanoi(n-1,A,C,B);move(n,a,b);hanoi(n-1,C,B,A);C最优子结构性质与重叠子问题性质D.预排序与递归调用7.回溯法在问题的解空间树中,按(D)策略,从根结点出发搜索解空间树。

A广度优先B.活结点优先C.扩展结点优先D.深度优先8.分支限界法在问题的解空间树中,按(A)策略,从根结点出发搜索解空间树。

A广度优先B.活结点优先C.扩展结点优先D.深度优先9.程序块(A)是回溯法中遍历排列树的算法框架程序。

A.B.C.voidbacktrackbacktrack(intt)if(tn)output(x);elsefor(inti=t;in)output(x);elsefor(inti=0;in)output(x);elsefor(inti=0;in)output(x);elsefor(inti=t;i0,存在正数和n00使得对所有nn0有:

0f(n)0,存在正数和n00使得对所有nn0有:

0cg(n)0,存在正数和n00使得对所有nn0有:

0f(n)0,存在正数和n00使得对所有nn0有:

0cg(n)f(n);二、填空题1.下面程序段的所需要的计算时间为(2O(n))。

2.有11个待安排的活动,它们具有下表所示的开始时间与结束时间,如果以贪心算法求解这些活动的最优安排(即为活动安排问题:

在所给的活intMaxSum(intn,int*a,int&besti,int&bestj)intsum=0;for(inti=1;i=n;i+)intthissum=0;for(intj=i;jsum)sum=thissum;besti=i;bestj=j;returnsum;动集合中选出最大的相容活动子集合),得到的最大相容活动子集合为活动(1,4,8,11)。

3.所谓贪心选择性质是指(所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到)。

4.所谓最优子结构性质是指(问题的最优解包含了其子问题的最优解)。

5.回溯法是指(具有限界函数的深度优先生成法)。

6.用回溯法解题的一个显著特征是在搜索过程中动态产生问题的解空间。

在任何时刻,算法只保存从根结点到当前扩展结点的路径。

如果解空间树中从根结点到叶结点的最长路径的长度为h(n),则回溯法所需的计算空间通常为(O(h(n))。

7.回溯法的算法框架按照问题的解空间一般分为(子集树)算法框架与(排列树)算法框架。

8.用回溯法解0/1背包问题时,该问题的解空间结构为(子集树)结构。

9.用回溯法解批处理作业调度问题时,该问题的解空间结构为(排列树)结构。

10.用回溯法解0/1背包问题时,计算结点的上界的函数如下所示,请在空格中填入合适的内容:

1413121110987654fi122886535031Si1110987654321iTypepKnap:

BoundBound(inti)/计算上界Typewcleft=c-cw;/剩余容量Typepb=cp;/结点的上界/以物品单位重量价值递减序装入物品while(i=n&wi=cleft)cleftcleft-=wi;=wi;b+=pi;b+=pi;i+;i+;/装满背包if(i=n)(b+=pi/wi*cleftb+=pi/wi*cleft);returnb;11.用回溯法解布线问题时,求最优解的主要程序段如下。

如果布线区域划分为nm的方格阵列,扩展每个结点需O

(1)的时间,L为最短布线路径的长度,则算法共耗时(O(mn),构造相应的最短距离需要(O(L))时间。

12.用回溯法解图的m着色问题时,使用下面的函数OK检查当前扩展结点的每一个儿子所相应的颜色的可用性,则需耗时(渐进时间上限)(O(mn)。

13.旅行售货员问题的解空间树是(排列树)。

for(inti=0;iNumOfNbrs;i+)nbr.row=here.row+offseti.row;nbr.col=here.col+offseti.col;if(gridnbr.rownbr.col=0)/该方格未标记gridnbr.rownbr.col=gridhere.rowhere.col+1;if(nbr.row=finish.row)&(nbr.col=finish.col)break;/完成布线Q.Add(nbr);BoolColor:

OK(intk)/for(intj=1;j=n;j+)if(akj=1)&(xj=xk)returnfalse;returntrue;三、证明题1.一个分治法将规模为n的问题分成k个规模为nm的子问题去解。

设分解阀值n0=1,且adhoc解规模为1的问题耗费1个单位时间。

再设将原问题分解为k个子问题以及用merge将k个子问题的解合并为原问题的解需用f(n)个单位时间。

用T(n)表示该分治法解规模为|P|=n的问题所需的计算时间,则有:

(1)1()(/)()1OnTnkTnmfnn通过迭代法求得T(n)的显式表达式为:

log1log0()(/)nmkjjmjTnnkfnm试证明T(n)的显式表达式的正确性。

2.举反例证明0/1背包问题若使用的算法是按照pi/wi的非递减次序考虑选择的物品,即只要正在被考虑的物品装得进就装入背包,则此方法不一定能得到最优解(此题说明0/1背包问题与背包问题的不同)。

证明:

举例如:

p=7,4,4,w=3,2,2,c=4时,由于7/3最大,若按题目要求的方法,只能取第一个,收益是7。

而此实例的最大的收益应该是8,取第2,3个。

3.求证:

O(f(n)+O(g(n)=O(maxf(n),g(n)。

证明:

对于任意f1(n)O(f(n),存在正常数c1和自然数n1,使得对所有nn1,有f1(n)c1f(n)。

类似地,对于任意g1(n)O(g(n),存在正常数c2和自然数n2,使得对所有nn2,有g1(n)c2g(n)。

令c3=maxc1,c2,n3=maxn1,n2,h(n)=maxf(n),g(n)。

则对所有的nn3,有f1(n)+g1(n)c1f(n)+c2g(n)c3f(n)+c3g(n)=c3(f(n)+g(n)c32maxf(n),g(n)=2c3h(n)=O(maxf(n),g(n).4.求证最优装载问题具有贪心选择性质。

(最优装载问题:

有一批集装箱要装上一艘载重量为c的轮船。

其中集装箱i的重量为Wi。

最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。

设集装箱已依其重量从小到大排序,(x1,x2,xn)是最优装载问题的一个最优解。

又设1min|1iinkix。

如果给定的最优装载问题有解,则有1kn。

)证明:

四、解答题1.机器调度问题。

问题描述:

现在有n件任务和无限多台的机器,任务可以在机器上得到处理。

每件任务的开始时间为si,完成时间为fi,sin)/到达叶结点更新最优解bestx,bestw;return;r-=wi;ifif(cw+wibestw)xi=0;/搜索右子树backtrackbacktrack(i+1);r+=wi;5.用分支限界法解装载问题时,对算法进行了一些改进,下面的程序段给出了改进部分;试说明斜线部分完成什么功能,以及这样做的原因,即采用这样的方式,算法在执行上有什么不同。

/检查左儿子结点Typewt=Ew+wi;/左儿子结点的重量if(wtbestw)bestw=wt;if(wtbestw)bestw=wt;/加入活结点队列if(ibestw&i0故Ew+rbestw总是成立。

也就是说,此时右子树测试不起作用。

为了使上述右子树测试尽早生效,应提早更新bestw。

又知算法最终找到的最优值是所求问题的子集树中所有可行结点相应重量的最大值。

而结点所相应得重量仅在搜索进入左子树是增加,因此,可以在算法每一次进入左子树时更新bestw的值。

7.最长公共子序列问题:

给定2个序列X=x1,x2,xm和Y=y1,y2,yn,找出X和Y的最长公共子序列。

由最长公共子序列问题的最优子结构性质建立子问题最优值的递归关系。

用cij记录序列Xi和Yj的最长公共子序列的长度。

其中,Xi=x1,x2,xi;Yj=y1,y2,yj。

当i=0或j=0时,空序列是Xi和Yj的最长公共子序列。

故此时Cij=0。

其它情况下,由最优子结构性质可建立递归关系如下:

00,0111,0;max1,1,0;ijijijcijcijijxycijcijijxy在程序中,bij记录Cij的值是由哪一个子问题的解得到的。

(1)请填写程序中的空格,以使函数LCSLength完成计算最优值的功能。

voidLCSLengthLCSLength(intm,intn,char*x,char*y,int*c,int*b)inti,j;for(i=1;i=m;i+)ci0=0;for(i=1;i=n;i+)c0i=0;for(i=1;i=m;i+)for(j=1;j=cij-1)cij=ci-1j;bij=2;elsecij=cij-1;bij=3;

(2)函数LCS实现根据b的内容打印出Xi和Yj的最长公共子序列。

请填写程序中的空格,以使函数LCS完成构造最长公共子序列的功能(请将bij的取值与

(1)中您填写的取值对应,否则视为错误)。

8.对下面的递归算法,写出调用f(4)的执行结果。

voidLCSLCS(inti,intj,char*x,int*b)if(i=0|j=0)return;if(bij=1)LCS(i-1,j-1,x,b);cout0)printf(%dn,k);f(k-1);f(k-1);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2