算法分析期末试题集答案资料Word文件下载.docx

上传人:b****1 文档编号:12993063 上传时间:2022-10-01 格式:DOCX 页数:62 大小:354.89KB
下载 相关 举报
算法分析期末试题集答案资料Word文件下载.docx_第1页
第1页 / 共62页
算法分析期末试题集答案资料Word文件下载.docx_第2页
第2页 / 共62页
算法分析期末试题集答案资料Word文件下载.docx_第3页
第3页 / 共62页
算法分析期末试题集答案资料Word文件下载.docx_第4页
第4页 / 共62页
算法分析期末试题集答案资料Word文件下载.docx_第5页
第5页 / 共62页
点击查看更多>>
下载资源
资源描述

算法分析期末试题集答案资料Word文件下载.docx

《算法分析期末试题集答案资料Word文件下载.docx》由会员分享,可在线阅读,更多相关《算法分析期末试题集答案资料Word文件下载.docx(62页珍藏版)》请在冰豆网上搜索。

算法分析期末试题集答案资料Word文件下载.docx

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

0cg(n)f(n);

1.程序段的所需要的计算时间为()。

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;

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

在所给的活动集合中选出最大的相容活动子集合),得到的最大相容活动子集合为活动(1,4,8,11)。

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

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

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

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

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

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

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

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

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

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

TypepKnap:

Bound(inti)/计算上界Typewcleft=c-cw;

/剩余容量Typepb=cp;

/结点的上界/以物品单位重量价值递减序装入物品while(i=n&

wi=cleft)cleft-=wi;

b+=pi;

i+;

/装满背包if(i=n)(b+=pi/wi*cleft);

returnb;

11.用回溯法解布线问题时,求最优解的主要程序段如下。

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

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

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);

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

BoolColor:

OK(intk)/for(intj=1;

j=n;

j+)if(akj=1)&

(xj=xk)returnfalse;

returntrue;

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

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

问题描述:

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

每件任务的开始时间为si,完成时间为fi,sin)/到达叶结点更新最优解bestx,bestw;

return;

r-=wi;

if(cw+wibestw)xi=0;

/搜索右子树backtrack(i+1);

r+=wi;

5.用分支限界法解装载问题时,对算法进行了一些改进,下面的程序段给出了改进部分;

试说明斜线部分完成什么功能,以及这样做的原因,即采用这样的方式,算法在执行上有什么不同。

/检查左儿子结点Typewt=Ew+wi;

/左儿子结点的重量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。

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

在程序中,bij记录Cij的值是由哪一个子问题的解得到的。

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

voidLCSLength(intm,intn,char*x,char*y,int*c,int*b)inti,j;

for(i=1;

i=m;

i+)ci0=0;

i+)c0i=0;

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)中您填写的取值对应,否则视为错误)。

voidLCS(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);

一、简要回答下列问题:

1.算法重要特性是什么?

2.算法分析的目的是什么?

3.算法的时间复杂性与问题的什么因素相关?

4.算法的渐进时间复杂性的含义?

5.最坏情况下的时间复杂性和平均时间复杂性有什么不同?

6.简述二分检索(折半查找)算法的基本过程。

7.背包问题的目标函数和贪心算法最优化量度相同吗?

8.采用回溯法求解的问题,其解如何表示?

有什么规定?

9.回溯法的搜索特点是什么?

10.n皇后问题回溯算法的判别函数place的基本流程是什么?

11.为什么用分治法设计的算法一般有递归调用?

12.为什么要分析最坏情况下的算法时间复杂性?

13.简述渐进时间复杂性上界的定义。

14.二分检索算法最多的比较次数?

15.快速排序算法最坏情况下需要多少次比较运算?

16.贪心算法的基本思想?

17.回溯法的解(x1,x2,xn)的隐约束一般指什么?

18.阐述归并排序的分治思路。

19.快速排序的基本思想是什么。

20.什么是直接递归和间接递归?

消除递归一般要用到什么数据结构?

21.什么是哈密顿环问题?

22.用回溯法求解哈密顿环,如何定义判定函数?

23.请写出prim算法的基本思想。

参考答案:

1.确定性、可实现性、输入、输出、有穷性2.分析算法占用计算机资源的情况,对算法做出比较和评价,设计出额更好的算法。

3.算法的时间复杂性与问题的规模相关,是问题大小n的函数。

4当问题的规模n趋向无穷大时,影响算法效率的重要因素是T(n)的数量级,而其他因素仅是使时间复杂度相差常数倍,因此可以用T(n)的数量级(阶)评价算法。

时间复杂度T(n)的数量级(阶)称为渐进时间复杂性。

5.最坏情况下的时间复杂性和平均时间复杂性考察的是n固定时,不同输入实例下的算法所耗时间。

最坏情况下的时间复杂性取的输入实例中最大的时间复杂度:

W(n)=maxT(n,I),IDn平均时间复杂性是所有输入实例的处理时间与各自概率的乘积和:

A(n)=P(I)T(n,I)IDn6.设输入是一个按非降次序排列的元素表Ai:

j和x,选取A(i+j)/2与x比较,如果A(i+j)/2=x,则返回(i+j)/2,如果A(i+j)/2x,则Ai:

(i+j)/2-1找x,否则在A(i+j)/2+1:

j找x。

上述过程被反复递归调用。

回溯法的搜索特点是什么7.不相同。

目标函数:

获得最大利润。

最优量度:

最大利润/重量比。

8.问题的解可以表示为n元组:

(x1,x2,xn),xiSi,Si为有穷集合,xiSi,(x1,x2,xn)具备完备性,即(x1,x2,xn)是合理的,则(x1,x2,xi)(in)一定合理。

9.在解空间树上跳跃式地深度优先搜索,即用判定函数考察xk的取值,如果xk是合理的就搜索xk为根节点的子树,如果xk取完了所有的值,便回溯到xk-1。

10.将第K行的皇后分别与前k-1行的皇后比较,看是否与它们相容,如果不相容就返回false,测试完毕则返回true。

11.子问题的规模还很大时,必须继续使用分治法,反复分治,必然要用到递归。

12最坏情况下的时间复杂性决定算法的优劣,并且最坏情况下的时间复杂性较平均时间复杂性游可操作性。

13.T(n)是某算法的时间复杂性函数,f(n)是一简单函数,存在正整数No和C,nNo,有T(n)f(n),这种关系记作T(n)=O(f(n)。

14.二分检索算法的最多的比较次数为logn。

15.最坏情况下快速排序退化成冒泡排序,需要比较n2次。

16.是一种依据最优化量度依次选择输入的分级处理方法。

基本思路是:

首先根据题意,选取一种量度标准;

然后按这种量度标准对这n个输入排序,依次选择输入量加入部分解中。

如果当前这个输入量的加入,不满足约束条件

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

当前位置:首页 > 自然科学 > 化学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1