算法设计与分析试卷计本3班(DOC 37页).doc

上传人(卖家):2023DOC 文档编号:5604406 上传时间:2023-04-26 格式:DOC 页数:38 大小:261.50KB
下载 相关 举报
算法设计与分析试卷计本3班(DOC 37页).doc_第1页
第1页 / 共38页
算法设计与分析试卷计本3班(DOC 37页).doc_第2页
第2页 / 共38页
算法设计与分析试卷计本3班(DOC 37页).doc_第3页
第3页 / 共38页
算法设计与分析试卷计本3班(DOC 37页).doc_第4页
第4页 / 共38页
算法设计与分析试卷计本3班(DOC 37页).doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

1、算法设计与分析试卷填空题(20分,每空2分)1.算法的性质包括输入、输出、有限性。2.动态规划算法的基本思想就将待求问题、先求解子问题,然后从这些子问题的解得到原问题的解。3.设计动态规划算法的4个步骤:4.找出,并刻画其结构特征。5.根据计算最优值得到的信息,。6.流水作业调度问题的johnson算法:令N1=,N2=i|ai=bj;将N1中作业依ai的。7.对于流水作业高度问题,必存在一个最优调度,使得作业(i)和(i+1)满足Johnson不等式。8.最优二叉搜索树即是的二叉搜索树。9.下面程序段的所需要的计算时间为( )。int MaxSum(int n, int *a, int &b

2、esti, int &bestj)int sum=0;for(int i=1;i=n;i+) int thissum=0;for(int j=i;jsum)sum=thissum;besti=i;bestj=j;return sum;10,有11个待安排的活动,它们具有下表所示的开始时间与结束时间,如果以贪心算法求解这些活动的最优安排(即为活动安排问题:在所给的活动集合中选出最大的相容活动子集合),得到的最大相容活动子集合为活动( 1,4,8,11 )。1413121110987654fi122886535031Si1110987654321i11,所谓贪心选择性质是指(所求问题的整体最优解可

3、以通过一系列局部最优的选择,即贪心选择来达到)。12,所谓最优子结构性质是指(问题的最优解包含了其子问题的最优解)。13,回溯法是回溯法是指(具有限界函数的深度优先生成法)。14. 用回溯法解题的一个显著特征是在搜索过程中动态产生问题的解空间。在任何时刻,算法只保存从根结点到当前扩展结点的路径。如果解空间树 中从根结点到叶结点的最长路径的长度为h(n),则回溯法所需的计算空间通常为(O(h(n))。15. 回溯法的算法框架按照问题的解空间一般分为(子集树)算法框架与(排列树)算法框架。16. 用回溯法解0/1背包问题时,该问题的解空间结构为(子集树)结构。17.用回溯法解批处理作业调度问题时,

4、该问题的解空间结构为(排列树)结构。18.用回溯法解0/1背包问题时,计算结点的上界的函数如下所示,请在空格中填入合适的内容:Typep Knap:Bound(int i)/ 计算上界 Typew cleft = c - cw; / 剩余容量 Typep b = cp; / 结点的上界 / 以物品单位重量价值递减序装入物品 while (i = n & wi = cleft) cleft -= wi; b += pi; i+; / 装满背包 if (i = n) (b += pi/wi * cleft); return b;19. 用回溯法解布线问题时,求最优解的主要程序段如下。如果布线区域划

5、分为的方格阵列,扩展每个结点需O(1)的时间,L为最短布线路径的长度,则算法共耗时 ( O(mn) ),构造相应的最短距离需要(O(L))时间。for (int i = 0; i NumOfNbrs; 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 = fini

6、sh.col) break; / 完成布线 Q.Add(nbr); 20. 用回溯法解图的m着色问题时,使用下面的函数OK检查当前扩展结点的每一个儿子所相应的颜色的可用性,则需耗时(渐进时间上限)(O(mn)。Bool Color:OK(int k)/ for(int j=1;j 0) hanoi(n-1,A,C, B); move(n,a,b); hanoi(n-1, C, B, A); Hanoi塔B. void hanoi(int n, int A, int B, int C) if (n 0) hanoi(n-1, A, C, B); move(n,a,b); hanoi(n-1, C

7、, B, A); C. void hanoi(int n, int C, int B, int A) if (n 0) hanoi(n-1, A, C, B); move(n,a,b); hanoi(n-1, C, B, A); D. void hanoi(int n, int C, int A, int B) if (n 0) hanoi(n-1, A, C, B); move(n,a,b); hanoi(n-1, C, B, A); 33. 动态规划算法的基本要素为(C)A. 最优子结构性质与贪心选择性质B重叠子问题性质与贪心选择性质C最优子结构性质与重叠子问题性质D. 预排序与递归调用3

8、4. 算法分析中,记号O表示(B), 记号表示(A), 记号表示(D)。 35. 以下关于渐进记号的性质是正确的有:(A)A.B. C. O(f(n)+O(g(n) = O(minf(n),g(n) D. 36. 能采用贪心算法求最优解的问题,一般具有的重要性质为:(A)A. 最优子结构性质与贪心选择性质B重叠子问题性质与贪心选择性质C最优子结构性质与重叠子问题性质D. 预排序与递归调用37. 回溯法在问题的解空间树中,按(D)策略,从根结点出发搜索解空间树。A.广度优先 B. 活结点优先 C.扩展结点优先 D. 深度优先38. 分支限界法在问题的解空间树中,按(A)策略,从根结点出发搜索解空

9、间树。 A 广度优先 B. 活结点优先 C.扩展结点优先 D. 深度优先39. 程序块(A)是回溯法中遍历排列树的算法框架程序。void backtrack (int t) if (tn) output(x); else for (int i=t;in) output(x); else for (int i=0;in) output(x); else for (int i=0;in) output(x); else for (int i=t;i0,存在正数和n0 0使得对所有nn0有:0 f(n)0,存在正数和n0 0使得对所有nn0有:0 cg(n) 0,存在正数和n0 0使得对所有nn0有

10、:0 f(n)0,存在正数和n0 0使得对所有nn0有:0 cg(n) f(n) ;三、判断题1、VB表达式(A & B & C)的值一定是字符型数据。对2、程序循环结构中的循环体语句将根据实际情况(条件)确定执行次数。对3、程序通过编译可以有效发现程序的语法错误。对4、在VB中,Int(100 * Rnd + 1)的取值范围是1100之间的所有整数(包括1和100)对5、运行程序时,程序中的所有语句都要运行一次或多次。错6、算法有五大特征,其中包括输入和输出这两种,意思就是说一个算法必须要有输入,也必须要有输出。错7、在VB中,编写程序代码在代码编辑窗口中进行。代码由语句、常数和声明部分组成

11、。对8、VB的所有控件在程序运行以后都是可见的。错9、在VB程序设计中,方法表示了对象的行为,即对象所能完成的某种操作。对10、控件是应用程序的图形界面中显示可供用户操纵,并可控制应用程序的图形界面元素,是VB可视化编程的基本操作对象。对11、如果知道一个三角形的两个角和一条边的值,可以用解析法设计程序求解该三角形的面积。对12、在面向对象程序设计中,类是对多个对象的抽象,因此,同一类的不同对象只能有不同的对象名,属性值则相同。错13、列举一切与命题相关的情况,然后根据问题设定的条件,逐个加以检查,找到满足条件的解答的方法称为穷举法。对14、递归算法就是一种直接或间接地调用自身的算法。对15、

12、对一个排好序的数组来说,要查找其中的一个元素,使用二分查找法查找速度最快。错16、已知三角形的两边分别为a、b,它们的夹角为0.6弧度,在VB中可用公式(a * b * Sin(0.6) / 2)求出该三角形的面积。 对17、条件语句在执行过程中将由电脑随机选择执行哪部分语句。错18、汇编语言实际是一种符号化的机器语言,它采用英文助记符代替机器指令,比机器语言容易识别和记忆,从而提高了程序的可读性。对19、在一个循环语句的循环体中含有另一个循环语句,肯定出现死循环。错20、算法就是用计算机语言编写的程序。错21、用计算机解决某个问题的算法只有一种。错22、VB中的算术运算符*(乘)、/(除)、

13、(整除)、Mod(取余数)的运算优先级相同。 错23、用高级语言编写的必须经过翻译器将其翻译成机器语言,才能在计算机上执行。 对24、所有的程序都是从程序中的第一条语句开始按顺序执行的。错25、在VB程序设计中,对象的行为称为方法。对26、如果程序经过编译未发现错误,那么程序的调试就完成了。错27、算法是程序设计的核心,是程序设计的灵魂。对28、窗体是VB程序设计的基础,各种控件对象必须建立在窗体上,一个窗体对应一个窗体模块。对29、在面向对象程序设计中,一个程序对象的属性用变量来表示,而对象的行为用对象中的代码段来实现。对30、程序循环结构中的循环体语句至少会执行一次。错31、在VB中,开发

14、的每个应用程序都被称为工程,工程是组成一个应用程序的文件集合。对32、凡是能够用解析法求解的问题都可以通过定量分析,并能用解析表达式来描述。 对33、VB中的事件只能由用户引发。错34、已知三角形的两边分别为a、b,它们的夹角为60度,在VB中可用公式(a * b * Sin(60) / 2)求出该三角形的面积。错35、条件语句在执行过程中会根据逻辑表达式的值选择执行哪部分语句。对36、对半查找的实质是在一个有限且有序的对象中,通过每次减缩一半查找范围而达到迅速确定目标的一个有效算法。对38、递归算法的实质是把问题转化为规模缩小了的同类问题的子问题,然后递归调用函数或过程来表示问题的解。对39

15、、在一个循环语句的循环体中含有另一个循环语句,就形成了嵌套循环。对40、列举一切与命题相关的情况,然后根据问题设定的条件,逐个加以检查,找到满足条件的解答的方法称为解析法。错四、综合题(50分)1、当(a1,a2,a3,a4,a5,a6)=(-2,11,-4,13,-5,-2)时,最大子段和为ak(2=k=4)(5分)2、由流水作业调度问题的最优子结构性质可知,T(N,0)=(5分)3、最大子段和问题的简单算法(10分)int maxsum(int n,int *a,int & bestj)intsum=0;for (int i=1;i=n;i+)for (int j=i;j=n;j+)int

16、 thissum=0;for(int k=i;ksum)sum=thissum;;bestj=j; return sum;设计最优二叉搜索树问题的动态规划算法OptimalBinarysearchTree? (15分)Void OptimalBinarysearchTree(int a,int n,int * * m, int * * w)for(int i=0;i=n;i+) wi+1i=ai; mi+1i=;for(int r=0;rn;r+)for(int i=1;i=n-r;i+)int j=i+r;wij=wij-1+aj+bj;mij=;sij=i;for(int k=i+1;k=

17、j;k+)int t=mik-1+mk+1j;if() mij=t; sij=k;mij=t; sij=k;5、设n=4, (a1,a2,a3,a4)=(3,4,8,10), (b1,b2,b3,b4)=(6,2,9,15) 用两种方法求4个作业的最优调度方案并计算其最优值?(15分)五、简答题(30分)1、将所给定序列a1:n分为长度相等的两段a1:n/2和an/2+1:n,分别求出这两段的最大子段和,则a1:n的最大子段和有哪三种情形?(10分)答: 2、由01背包问题的最优子结构性质,可以对m(i,j)建立怎样的递归式? (10分)3、01背包求最优值的步骤分为哪几步?(10分)七证明题

18、1. 一个分治法将规模为n的问题分成k个规模为nm的子问题去解。设分解阀值n0=1,且adhoc解规模为1的问题耗费1个单位时间。再设将原问题分解为k个子问题以及用merge将k个子问题的解合并为原问题的解需用f(n)个单位时间。用T(n)表示该分治法解规模为|P|=n的问题所需的计算时间,则有:通过迭代法求得T(n)的显式表达式为:试证明T(n)的显式表达式的正确性。2. 举反例证明0/1背包问题若使用的算法是按照pi/wi的非递减次序考虑选择的物品,即只要正在被考虑的物品装得进就装入背包,则此方法不一定能得到最优解(此题说明0/1背包问题与背包问题的不同)。证明:举例如:p=7,4,4,w

19、=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) 。则对所有的 n n3,有f1(n) +g1(n) c1f(

20、n) + c2g(n) c3f(n) + c3g(n)= c3(f(n) + g(n) c32 maxf(n),g(n) = 2c3h(n) = O(maxf(n),g(n) .4. 求证最优装载问题具有贪心选择性质。(最优装载问题:有一批集装箱要装上一艘载重量为c的轮船。其中集装箱i的重量为Wi。最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。设集装箱已依其重量从小到大排序,(x1,x2,xn)是最优装载问题的一个最优解。又设 。如果给定的最优装载问题有解,则有。) 证明:六解答题机器调度问题。问题描述:现在有n件任务和无限多台的机器,任务可以在机器上得到处理。每

21、件任务的开始时间为si,完成时间为fi,si n) / 到达叶结点 更新最优解bestx,bestw;return; r -= wi; if (cw + wi bestw) xi = 0; / 搜索右子树 backtrack(i + 1); r += wi; 5. 用分支限界法解装载问题时,对算法进行了一些改进,下面的程序段给出了改进部分;试说明斜线部分完成什么功能,以及这样做的原因,即采用这样的方式,算法在执行上有什么不同。/ 检查左儿子结点 Type wt = Ew + wi; / 左儿子结点的重量 if (wt bestw) bestw = wt; / 加入活结点队列 if (i bestw & i 0 故Ew+r

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

当前位置:首页 > 办公、行业 > 待归类文档
版权提示 | 免责声明

1,本文(算法设计与分析试卷计本3班(DOC 37页).doc)为本站会员(2023DOC)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|