ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:66.19KB ,
资源ID:9296733      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9296733.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《算法分析与设计》期末考试复习题学生版.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《算法分析与设计》期末考试复习题学生版.docx

1、算法分析与设计期末考试复习题学生版算法分析与设计期末复习题一、 选择题1. 应用Johnson法则的流水作业调度采用的算法是(D)A. D.动态规划算法贪心算法 B.分支限界法 C.分治法2. Hanoi塔问题如下图所示。现要求将塔座 A上的的所有圆盘移到塔座 B上,并 仍按同样顺序叠置。移动圆盘时遵守 Hanoi塔问题的移动规则。由此设计出解Hanoi 塔Hanoi塔问题的递归算法正确的为:(B)A. void hanoi(int n, int A, int C, int B) if (n 0)hanoi(n-1,A,C, B); move( n, a,b);hanoi(n-1, C, B,

2、 A);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, B, A);C. void han oi(i nt n, i nt C, i nt B, i nt 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);

3、hanoi(n-1, C, B, A);3. 动态规划算法的基本要素为(C)A. 最优子结构性质与贪心选择性质B重叠子问题性质与贪心选择性质C. 最优子结构性质与重叠子问题性质D. 预排序与递归调用4. 算法分析中,记号0表示(B)记号0表示(A),记号。表示(D)A. 渐进下界B. 渐进上界C. 非紧上界D. 紧渐进界E. 非紧下界5. 以下关于渐进记号的性质是正确的有:(A)A. f( n) 7(g( n),g( n) - 4(h( n) = f( n) - O(h( n)B. f(n) =O(g(n),g(n) = 0(h(n)二 h(n) =0(f(n)C. O(f(n )+O(g(

4、n) = O(mi nf(n ),g( n)D. f(n) -O(g(n)二 g(n) -O(f (n)6. 能采用贪心算法求最优解的问题,一般具有的重要性质为: (A)A. 最优子结构性质与贪心选择性质B重叠子问题性质与贪心选择性质C. 最优子结构性质与重叠子问题性质D. 预排序与递归调用E. A.广度优先B.活结点优先C.扩展结点优先D.深度优先B.C.9. 程序块(A)是回溯法中遍历排列树的算法框架程序。void backtrack (int t)if (tn) output(x);elsefor (int i=t;in) output(x);elsefor (int i=0;in) o

5、utput(x);elsefor (int i=0;in) output(x);elsefor (int i=t;i=n ;i+) swap(xt, xi);if (legal(t) backtrack(t+1); 10. 回溯法的效率不依赖于以下哪一个因素? ( C )A. 产生xk的时间;B. 满足显约束的xk值的个数;C. 问题的解空间的形式;D. 计算上界函数bound的时间;E. 满足约束函数和上界函数约束的所有 xk的个数。F. 计算约束函数constraint的时间;11. 常见的两种分支限界法为(D)A. 广度优先分支限界法与深度优先分支限界法;B. 队列式(FIFO)分支限界

6、法与堆栈式分支限界法;C. 排列树法与子集树法;D. 队列式(FIFO)分支限界法与优先队列式分支限界法;12. k带图灵机的空间复杂性S(n)是指(B)A. k带图灵机处理所有长度为n的输入时,在某条带上所使用过的最大方格数。B. k带图灵机处理所有长度为n的输入时,在k条带上所使用过的方格数的总 和。C. k带图灵机处理所有长度为n的输入时,在k条带上所使用过的平均方格数。D. k带图灵机处理所有长度为n的输入时,在某条带上所使用过的最小方格数。13. NP类语言在图灵机下的定义为(D)A.NP=L|L 是-个能在非多项式时间内被一.台NDT晰接受的语言;B.NP=L|L 是-个能在多项式

7、时间内被一厶NDTM所接受的语言;C.NP=L|L 是-个能在多项式时间内被一厶DTM所接受的语言;D.NP=L|L 是-个能在多项式时间内被一厶NDTM所接受的语言;14.记号0的定义正确的是(A)。A.O(g( n)= f(n) |存在正常数c和n0使得对所有n_n有:0 f(n) cg(n) B.O(g( n)= f(n) |存在正常数c和n0使得对所有n_n有:0空 cg(n) 0,存在正数和n 0使得对所有n_ n有:0M(n)0,存在正数和n 0使得对所有n _n 有:0 -cg(n) f(n) ;15.记号门的定义正确的是(B)。A.O(g( n)= f(n) |存在正常数c和n

8、0使得对所有n_n有:0 f(n) cg(n) B.O(g( n)= f(n)|存在正常数c和n0使得对所有n n有:0乞 cg(n) 0,存在正数和n0 0使得对所有n n有:0 乞 f(n)0,存在正数和no 0使得对所有n-n有:0 g(n) f(n) ;填空题i. )0int &bestj)下面程序段的所需要的计算时间为( o(n)int MaxSum(int n, int *a, int &besti, int sum=0;for(int i=1;i=n;i+)int thissum=0;for(i nt j=i;jsum) sum=thissum; besti=i; bestj=j

9、;return sum;2. 有11个待安排的活动,它们具有下表所示的开始时间与结束时间,如果以贪心算法求解这些活动的最优安排(即为活动安排问题:在所给的活动集合中选出最大的相容活动子集合),得到的最大相容活动子集合为活动(1 , 4, 8, 11)。1234567891011Si130535688212fi45678910111213143. 所谓贪心选择性质是指(所求问题的整体最优解可以通过一系列局部最 优的选择,即贪心选择来达到)。4. 所谓最优子结构性质是指(问题的最优解包含了其子问题的最优解)。5. 回溯法是指(具有限界函数的深度优先生成法)。6. 用回溯法解题的一个显著特征是在搜索

10、过程中动态产生问题的解空间。 在任何时刻,算法只保存从根结点到当前扩展结点的路径。如果解空间树 中从根结点到叶结点的最长路径的长度为 h(n),则回溯法所需的计算空间通常为(0(h(n)。7. 回溯法的算法框架按照问题的解空间一般分为 (子集树)算法框架与(排列树)算法框架。8. 用回溯法解0/1背包问题时,该问题的解空间结构为(子集树)结构。9. 用回溯法解批处理作业调度问题时,该问题的解空间结构为( 排列树)结构。10. 用回溯法解0/1背包问题时,计算结点的上界的函数如下所示,请在空格 中填入合适的内容:Typep Kn ap: Boun d(i nt i)/计算上界Typew clef

11、t = c - cw; / 剩余容量Typep b = cp; / 结点的上界/ 以物品单位重量价值递减序装入物品while (i = n & wi = cleft) cleft -= wi;b += pi;i+;/ 装满背包if (i = n) (b += pi/wi * cleft );return b;11. 用回溯法解布线问题时,求最优解的主要程序段如下。如果布线区域划分为n m的方格阵列,扩展每个结点需 0(1)的时间,L为最短布线路径的长度,则算法共耗时(0(mn),构造相应的最短距离需要(0(L)时间。for (int i = 0; i NumOfNbrs; i+) n br.r

12、ow = here.row + offseti.row;n br.col = here.col + offseti.col;if (grid nbr.row nbr.col = 0) / 该方格未标记grid nbr.row nbr.col=gridhere.rowhere.col + 1;if (n br.row = fini sh.row) &(n br.col = fin ish.col) break; / 完成布线Q.Add( nbr);12. 用回溯法解图的m着色问题时,使用下面的函数 OK检查当前扩展结点的 每一个儿子所相应的颜色的可用性,则需耗时(渐进时间上限) (O (mn)。

13、Bool Color:OK(i nt k)/for(i nt j=1;j=n ;j+)if(akj= =1)&(xj= =xk) return false; return true;13. 旅行售货员问题的解空间树是(排列树)证明题1. n =1一个分治法将规模为n的问题分成k个规模为n/m的子问题去解。设分 解阀值n0=1,且adhoc解规模为1的问题耗费1个单位时间。再设将原问题 分解为k个子问题以及用merge将k个子问题的解合并为原问题的解需用f(n) 个单位时间。用T(n)表示该分治法解规模为|P|=n的问题所需的计算时间,则有:T(n)二 kT( n/m) + f( n)logmn

14、-l通过迭代法求得T (n)的显式表达式为:T(n)= n碗m工kj f (n/mj)j=o试证明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. 求证:0(f(n)+0(g(n) = O(maxf(n),g(n)。证明:对于任意f1(n) O(

15、f(n),存在正常数c1和自然数n1,使得对所有n_n1, 有 f1(n)乞 c1f(n)。类似地,对于任意g1(n) O(g(n),存在正常数c2和自然数n2,使得对 所有 n_n2,有 g1(n) _c2g(n)。令 c3=maxc1, c2, n3 =maxn1, 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. 求证最优装载问题具有贪心选择性质。(

16、最优装载问题:有一批集装箱要装上一艘载重量为 c的轮船。其中集装箱 i的重量为Wi。最优装载问题要求确定在装载体积不受限制的情况下, 将尽可能 多的集装箱装上轮船。 设集装箱已依其重量从小到大排序,(X1,X2,x n)是最优 装载问题的一个最优解。又设k = mini | x = 1。如果给定的最优装载问题有解,1兰g则有仁k乞n。)证明:四、 解答题1. 机器调度问题。问题描述:现在有n件任务和无限多台的机器,任务可以在机器上得到 处理。每件任务的开始时间为s,完成时间为fi,S n) / 到达叶结点更新最优解 bestx,bestw;return;r -= wi;if (cw + wi

17、bestw) xi = 0; / 搜索右子树backtrack (i + 1); r += wi;5. 用分支限界法解装载问题时,对算法进行了一些改进,下面的程序段给出了 改进部分;试说明斜线部分完成什么功能,以及这样做的原因,即采用这样的方 式,算法在执行上有什么不同。/检查左儿子结点Type wt = Ew + wi; / 左儿子结点的重量if (wt bestw) bestw = wt;/ 加入活结点队列if (i bestw & i 0故Ew+rbestw总是成立。也就 是说,此时右子树测试不起作用。为了使上述右子树测试尽早生效,应提早更新 bestw。又知算法最终找到的最优值是所求问

18、题的子集树中所有可行结点相应重量的最大值。 而结点所相应得重量仅在搜索进入左子树是增加,因此,可以在算法每一次进入左子树时更新 bestw的值。7.最长公共子序列问题:给定2个序列X=x1,x2,xm和Y=y1,y2,yn ,找出X和丫的最长公共子序列。由最长公共子序列问题的最优子结构性质建立子问题最优值的递归关系用cij 记录序列Xi和Yj的最长公共子序列的长度。其中,Xi=x1,x2,xi ; Yj=y1,y2,yj。当 i=0 或 j=0 时,空序列是 Xi 和 Yj 的最长公共子序列。故此时Cij=0 。其它情况下,由最优子结构性质可建立0 i =0, j = 0递归关系如下:cij二

19、三 ci -1 j -1 1 i, j 0;Xj=yjmaxci j 1,ci 1j i, j 0;x yj在程序中,bij 记录Cij 的值是由哪一个子问题的解得到的。(1)请填写程序中的空格,以使函数 LCSLe ngth完成计算最优值的功能。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 = 0;for (i = 1; i = m; i+)for (j = 1; j =cij-1 ) cij=ci-1j; bij=2; else cij=cij-1; bij=3; (2)函数LCS实现根据b的内容打印出Xi和Yj的最长公共子序列。请填 写程序中的空格,以使函数LCS完成构造最长公共子序列的功能(请 将bij 的取值与(1)中您填写的取值对应,否则视为错误)。void LCS(int i ,int j ,char *x,int *b)if (i =0 | j=0) retur n;if ( bij= 1 ) LCS( i-1,j-1,x, b);cout0 ) printf(%dn ,k);f(k-1);f(k-1);

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

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