算法设计与分析试卷计本3班

上传人:仙*** 文档编号:91509196 上传时间:2022-05-17 格式:DOC 页数:33 大小:210KB
收藏 版权申诉 举报 下载
算法设计与分析试卷计本3班_第1页
第1页 / 共33页
算法设计与分析试卷计本3班_第2页
第2页 / 共33页
算法设计与分析试卷计本3班_第3页
第3页 / 共33页
资源描述:

《算法设计与分析试卷计本3班》由会员分享,可在线阅读,更多相关《算法设计与分析试卷计本3班(33页珍藏版)》请在装配图网上搜索。

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 MaxS

2、um(int n, int *a, int &besti, 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 )。1413121110987654fi122886535031Si1110987654321i1

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

4、树)结构。17.用回溯法解批处理作业调度问题时,该问题的解空间结构为(排列树)结构。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 = finis

6、h.row) & (nbr.col = finish.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); m

7、ove(n,a,b); hanoi(n-1, C, 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最优子

8、结构性质与重叠子问题性质D. 预排序与递归调用34. 算法分析中,记号O表示(B), 记号表示(A), 记号表示(D)。A.渐进下界B.渐进上界C.非紧上界D.紧渐进界E.非紧下界 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. 活结点优

9、先 C.扩展结点优先 D. 深度优先38. 分支限界法在问题的解空间树中,按(A)策略,从根结点出发搜索解空间树。 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

10、 f(n)0,存在正数和n0 0使得对所有nn0有:0 cg(n) 0,存在正数和n0 0使得对所有nn0有: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、算法有五大特征,其中包括输入和输出这两种,意思就是说一个算法必

11、须要有输入,也必须要有输出。错7、在VB中,编写程序代码在代码编辑窗口中进行。代码由语句、常数和声明部分组成。对8、VB的所有控件在程序运行以后都是可见的。错9、在VB程序设计中,方法表示了对象的行为,即对象所能完成的某种操作。对10、控件是应用程序的图形界面中显示可供用户操纵,并可控制应用程序的图形界面元素,是VB可视化编程的基本操作对象。对11、如果知道一个三角形的两个角和一条边的值,可以用解析法设计程序求解该三角形的面积。对12、在面向对象程序设计中,类是对多个对象的抽象,因此,同一类的不同对象只能有不同的对象名,属性值则相同。错13、列举一切与命题相关的情况,然后根据问题设定的条件,逐

12、个加以检查,找到满足条件的解答的方法称为穷举法。对14、递归算法就是一种直接或间接地调用自身的算法。对15、对一个排好序的数组来说,要查找其中的一个元素,使用二分查找法查找速度最快。错16、已知三角形的两边分别为a、b,它们的夹角为0.6弧度,在VB中可用公式(a * b * Sin(0.6) / 2)求出该三角形的面积。 对17、条件语句在执行过程中将由电脑随机选择执行哪部分语句。错18、汇编语言实际是一种符号化的机器语言,它采用英文助记符代替机器指令,比机器语言容易识别和记忆,从而提高了程序的可读性。对19、在一个循环语句的循环体中含有另一个循环语句,肯定出现死循环。错20、算法就是用计算

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

14、而对象的行为用对象中的代码段来实现。对30、程序循环结构中的循环体语句至少会执行一次。错31、在VB中,开发的每个应用程序都被称为工程,工程是组成一个应用程序的文件集合。对32、凡是能够用解析法求解的问题都可以通过定量分析,并能用解析表达式来描述。 对33、VB中的事件只能由用户引发。错34、已知三角形的两边分别为a、b,它们的夹角为60度,在VB中可用公式(a * b * Sin(60) / 2)求出该三角形的面积。错35、条件语句在执行过程中会根据逻辑表达式的值选择执行哪部分语句。对36、对半查找的实质是在一个有限且有序的对象中,通过每次减缩一半查找范围而达到迅速确定目标的一个有效算法。对

15、38、递归算法的实质是把问题转化为规模缩小了的同类问题的子问题,然后递归调用函数或过程来表示问题的解。对39、在一个循环语句的循环体中含有另一个循环语句,就形成了嵌套循环。对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 & best

16、j)intsum=0;for (int i=1;i=n;i+)for (int j=i;j=n;j+)int 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+

17、)int j=i+r;wij=wij-1+aj+bj;mij=;sij=i;for(int k=i+1;k=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背包问题的最优子结构性

18、质,可以对m(i,j)建立怎样的递归式? (10分)3、01背包求最优值的步骤分为哪几步?(10分)七证明题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的非递减次序考虑选择的物品,即只要正在被考虑的物品装得进就装入

19、背包,则此方法不一定能得到最优解(此题说明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

20、, n2,h(n)= maxf(n),g(n) 。则对所有的 n n3,有f1(n) +g1(n) c1f(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)是最优装载问题的一个最优解。又设 。如果给定的最优装载问题有解,

21、则有。) 证明:六解答题机器调度问题。问题描述:现在有n件任务和无限多台的机器,任务可以在机器上得到处理。每件任务的开始时间为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; /

22、左儿子结点的重量 if (wt bestw) bestw = wt; / 加入活结点队列 if (i bestw & i 0 故Ew+rbestw总是成立。也就是说,此时右子树测试不起作用。为了使上述右子树测试尽早生效,应提早更新bestw。又知算法最终找到的最优值是所求问题的子集树中所有可行结点相应重量的最大值。而结点所相应得重量仅在搜索进入左子树是增加,因此,可以在算法每一次进入左子树时更新bestw的值。7. 最长公共子序列问题:给定2个序列X=x1,x2,xm和Y=y1,y2,yn,找出X和Y的最长公共子序列。 由最长公共子序列问题的最优子结构性质建立子问题最优值的递归关系。用cij记

23、录序列Xi和Yj的最长公共子序列的长度。其中, Xi=x1,x2,xi;Yj=y1,y2,yj。当i=0或j=0时,空序列是Xi和Yj的最长公共子序列。故此时Cij=0。其它情况下,由最优子结构性质可建立递归关系如下:在程序中,bij记录Cij的值是由哪一个子问题的解得到的。请填写程序中的空格,以使函数LCSLength完成计算最优值的功能。void LCSLength(int m,int n,char *x,char *y,int *c,int *b) int i,j; for (i = 1; i = m; i+) ci0 = 0; for (i = 1; i = n; i+) c0i =

24、0; for (i = 1; i = m; i+) for (j = 1; j =cij-1) cij=ci-1j; bij=2; else cij=cij-1; bij=3; 函数LCS实现根据b的内容打印出Xi和Yj的最长公共子序列。请填写程序中的空格,以使函数LCS完成构造最长公共子序列的功能(请将bij的取值与(1)中您填写的取值对应,否则视为错误)。void LCS(int i,int j,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); 33 / 33

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!