算法分析与设计复习题及答案
计算机算法与设计复习题(含答案)
1、一个算法的优劣可以用(时间复杂度)与(空间复杂度)与来衡量。
2、回溯法在问题的解空间中,按(深度优先方式)从根结点出发搜索解空间树。
3、直接或间接地调用自身的算法称为(递归算法)。
4、 记号在算法复杂性的表示法中表示(渐进确界或紧致界)。
5、在分治法中,使子问题规模大致相等的做法是出自一种(平衡(banlancing)子问题)的思想。
6、动态规划算法适用于解(具有某种最优性质)问题。
7、贪心算法做出的选择只是(在某种意义上的局部)最优选择。
8、最优子结构性质的含义是(问题的最优解包含其子问题的最优解)。
9、回溯法按(深度优先)策略从根结点出发搜索解空间树。
10、拉斯维加斯算法找到的解一定是(正确解)。
11、按照符号O的定义O(f)+O(g)等于O(max{f(n),g(n)})。
12、二分搜索技术是运用(分治)策略的典型例子。
13、动态规划算法中,通常不同子问题的个数随问题规模呈(多项式)级增长。
14、(最优子结构性质)和(子问题重叠性质)是采用动态规划算法的两个基本要素。
15、(最优子结构性质)和(贪心选择性质)是贪心算法的基本要素。
16、(选择能产生最优解的贪心准则)是设计贪心算法的核心问题。
17、分支限界法常以(广度优先)或(以最小耗费(最大效益)优先)的方式搜索问题的解空间树。
18、贪心选择性质是指所求问题的整体最优解可以通过一系列(局部最优)的选择,即贪心选择达到。
19、按照活结点表的组织方式的不同,分支限界法包括(队列式(FIFO)分支限界法)和(优先队列式分支限界法)两种形式。
20、如果对于同一实例,蒙特卡洛算法不会给出两个不同的正确解答,则称该蒙特卡洛算法是(一致的)。
21、哈夫曼编码可利用(贪心法)算法实现。
22概率算法有数值概率算法,蒙特卡罗(Monte Carlo)算法,拉斯维加斯(Las Vegas)算法和舍伍德(Sherwood)算法23以自顶向下的方式求解最优解的有(贪心算法)24、下列算法中通常以自顶向下的方式求解最优解的是(C)。
《算法分析与设计》期末测验复习题纲(完整版)
《算法分析与设计》期末测验复习题纲(完整版)————————————————————————————————作者:————————————————————————————————日期:《算法分析与设计》期末复习题一、选择题1.算法必须具备输入、输出和( D )等4个特性。
A.可行性和安全性 B.确定性和易读性C.有穷性和安全性 D.有穷性和确定性2.算法分析中,记号O表示( B ),记号Ω表示( A )A.渐进下界B.渐进上界C.非紧上界D.紧渐进界3.假设某算法在输入规模为n时的计算时间为T(n)=3*2^n。
在某台计算机上实现并完成概算法的时间为t秒。
现有另一台计算机,其运行速度为第一台的64倍,那么在这台新机器上用同一算法在t秒内能解输入规模为多大的问题?( B )解题方法:3*2^n*64=3*2^xA.n+8 B.n+6C.n+7 D.n+54.设问题规模为N时,某递归算法的时间复杂度记为T(N),已知T(1)=1,T(N)=2T(N/2)+N/2,用O表示的时间复杂度为( C )。
A.O(logN) B.O(N)C.O(NlogN) D.O(N²logN)5.直接或间接调用自身的算法称为( B )。
A.贪心算法 B.递归算法C.迭代算法 D.回溯法6.Fibonacci数列中,第4个和第11个数分别是( D )。
A.5,89 B.3,89C.5,144 D.3,1447.在有8个顶点的凸多边形的三角剖分中,恰有( B )。
A.6条弦和7个三角形 B.5条弦和6个三角形C.6条弦和6个三角形 D.5条弦和5个三角形8.一个问题可用动态规划算法或贪心算法求解的关键特征是问题的( B )。
A.重叠子问题 B.最优子结构性质C.贪心选择性质 D.定义最优解9.下列哪个问题不用贪心法求解( C )。
A.哈夫曼编码问题 B.单源最短路径问题C.最大团问题 D.最小生成树问题10.下列算法中通常以自底向上的方式求解最优解的是( B )。
算法设计与分析期末复习题
算法设计与分析期末考试复习题1.算法有哪些特点?为什么说一个具备了所有特征的算法,不一定就是使用的算法?2.证明下面的关系成立:(参考例题1.5--1.6)(1)logn!=Θ(nlogn) (2)2n=Θ(2n+1)(3)n!=Θ(n n) (4)5n2-6n=Θ(n2)3.考虑下面的算法:输入:n个元素的数组A输出:按递增顺序排序的数组A1. void sort(int A[],int n)2. {3. int i,j,temp;4. for(i=0;i<n-1;i++)5. for(j=i+1;j<n;j++)6. if(A[j]<A[i]) {7. temp=A[i];8. A[i]=A[j];9. A[j]=temp;10. }11. }(1)什么时候算法所执行的元素赋值的次数最少?最少多少次?(2)什么时候算法所执行的元素赋值的次数最多?最多多少次?4.考虑下面的算法:输入:n个元素的数组A输出:按递增顺序排序的数组A1. void bubblesort(int A[],int n)2. {3. int j,i,sorted;4. i=sorted=0;5. while(i<n-1 && !sorted) {6. sorted=1;7. for(j=n-1;j>i;j--) {8. if(A[j]<A[j-1]) {9. temp=A[j];10. A[j]=A[j-1];11. A[j-1]=temp;12. sorted=0;13. }14. }15. i=i+1;16. }17. }(1)算法所执行的元素比较次数最少是多少次?什么时候达到最少?(2)算法所执行的元素比较次数最多是多少次?什么时候达到最多?(3)算法所执行的元素赋值次数最少是多少次?什么时候达到最少?(4)算法所执行的元素赋值次数最多是多少次?什么时候达到最多?(5)用О、和Ω记号表示算法的运行时间。
算法设计与分析复习题目及答案
分治法1、二分搜索算法是利用(分治策略)实现的算法。
9. 实现循环赛日程表利用的算法是(分治策略)27、Strassen矩阵乘法是利用(分治策略)实现的算法。
34.实现合并排序利用的算法是(分治策略)。
实现大整数的乘法是利用的算法(分治策略)。
17.实现棋盘覆盖算法利用的算法是(分治法)。
29、使用分治法求解不需要满足的条件是(子问题必须是一样的)。
不可以使用分治法求解的是(0/1背包问题)。
动态规划下列不是动态规划算法基本步骤的是(构造最优解)下列是动态规划算法基本要素的是(子问题重叠性质)。
下列算法中通常以自底向上的方式求解最优解的是(动态规划法)备忘录方法是那种算法的变形。
(动态规划法)最长公共子序列算法利用的算法是(动态规划法)。
矩阵连乘问题的算法可由(动态规划算法B)设计实现。
实现最大子段和利用的算法是(动态规划法)。
贪心算法能解决的问题:单源最短路径问题,最小花费生成树问题,背包问题,活动安排问题,不能解决的问题:N皇后问题,0/1背包问题是贪心算法的基本要素的是(贪心选择性质和最优子结构性质)。
回溯法回溯法解旅行售货员问题时的解空间树是(排列树)。
剪枝函数是回溯法中为避免无效搜索采取的策略回溯法的效率不依赖于下列哪些因素(确定解空间的时间)分支限界法最大效益优先是(分支界限法)的一搜索方式。
分支限界法解最大团问题时,活结点表的组织形式是(最大堆)。
分支限界法解旅行售货员问题时,活结点表的组织形式是(最小堆)优先队列式分支限界法选取扩展结点的原则是(结点的优先级)在对问题的解空间树进行搜索的方法中,一个活结点最多有一次机会成为活结点的是( 分支限界法).从活结点表中选择下一个扩展结点的不同方式将导致不同的分支限界法,以下除( 栈式分支限界法)之外都是最常见的方式.(1)队列式(FIFO)分支限界法:按照队列先进先出(FIFO)原则选取下一个节点为扩展节点。
(2)优先队列式分支限界法:按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点。
计算机算法设计与分析期末复习资料
一填空题(20x1=20分)1.当设定的问题有多种算法去解决时,其选择算法的主要原则是选择其中复杂性最低者。
2.用函数自身给出定义的函数是一种递归函数。
3.动态规划算法适用于解最优化问题。
4.贪心算法的两个基本要素是最优子结构性质、贪心选择性质。
5.回溯法在搜索解空间树的时候,为了避免无效搜索,通常使用深度优先手段来提高搜索效率。
6.依据求解目标的不同,分支界限法和回溯法分别用广度优先遍历或者最小耗费优先、深度优先的方式搜索解空间树。
7.分支界限法和回溯法主要区别在于求解目标和搜索方式不同。
8.在分支界限法实现的时候,通常采用方式来实现最大优先队列。
9.依据求解所花费的时间和所得到的结果不同,随机化算法大致分为数值随机化算法、蒙特卡罗算法、拉斯维加斯算法和舍伍德算法四类。
10.产生伪随机数最常用的方法是线性同余法。
11.线性规划算法中转轴变化的目的是将入基变量与离基变量互调位置。
12.最大网络流问题中可增广路是残留网络中一条容量大于0的路。
13.待解决问题适用于动态规划法的两个基本要素是。
14.算法必须满足的四个特征是输入、输出、确定性、有限性。
15.算法复杂性依赖于、、三个方面的复杂因素。
16.实现递归调用的关键是17.动态规划算法求解问题的重要线索是问题的性质。
18.最优子结构性质是贪心算法求解问题的关键特征。
19.分支界限法的求解目标是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。
20.问题的解空间树常见的有子集树、排列树两种类型。
21.分支界限算法依据其从和节点表中选择获得下一扩展节点的不同方式被分为22.对于任何约束标准型线性规划问题,只要将所用分基本变量都设置为0,就可以获得一个解。
三概念题(6x2=12分)1.算法复杂性:是算法运行所需要的计算机资源的量,需要时间资源的量称为时间复杂性,需要空间资源的量称为空间复杂性。
2.递归算法:直接或间接地调用自身的算法称为递归算法。
算法分析与设计习题答案
算法分析与设计习题答案《算法分析与设计》期末复习题及答案⼀、简要回答下列问题:1.算法重要特性是什么?2.算法分析的⽬的是什么?3.算法的时间复杂性与问题的什么因素相关?4.算法的渐进时间复杂性的含义?5.最坏情况下的时间复杂性和平均时间复杂性有什么不同?6.简述⼆分检索(折半查找)算法的基本过程。
7.背包问题的⽬标函数和贪⼼算法最优化量度相同吗?8.采⽤回溯法求解的问题,其解如何表⽰?有什么规定?9.回溯法的搜索特点是什么?10.n皇后问题回溯算法的判别函数place的基本流程是什么?11.为什么⽤分治法设计的算法⼀般有递归调⽤?12.为什么要分析最坏情况下的算法时间复杂性?13.简述渐进时间复杂性上界的定义。
14.⼆分检索算法最多的⽐较次数?15.快速排序算法最坏情况下需要多少次⽐较运算?16.贪⼼算法的基本思想?17.回溯法的解(x1,x2,……x n)的隐约束⼀般指什么?18.阐述归并排序的分治思路。
19.快速排序的基本思想是什么。
20.什么是直接递归和间接递归?消除递归⼀般要⽤到什么数据结构?21.什么是哈密顿环问题?22.⽤回溯法求解哈密顿环,如何定义判定函数?23.请写出prim算法的基本思想。
参考答案:1. 确定性、可实现性、输⼊、输出、有穷性2. 分析算法占⽤计算机资源的情况,对算法做出⽐较和评价,设计出额更好的算法。
3. 算法的时间复杂性与问题的规模相关,是问题⼤⼩n的函数。
4.当问题的规模n趋向⽆穷⼤时,影响算法效率的重要因素是T(n)的数量级,⽽其他因素仅是使时间复杂度相差常数倍,因此可以⽤T(n)的数量级(阶)评价算法。
时间复杂度T(n)的数量级(阶)称为渐进时间复杂性。
5. 最坏情况下的时间复杂性和平均时间复杂性考察的是n固定时,不同输⼊实例下的算法所耗时间。
最坏情况下的时间复杂性取的输⼊实例中最⼤的时间复杂度:W(n) = max{ T(n,I) } , I∈Dn平均时间复杂性是所有输⼊实例的处理时间与各⾃概率的乘积和:A(n) =∑P(I)T(n,I) I∈Dn6. 设输⼊是⼀个按⾮降次序排列的元素表A[i:j] 和x,选取A[(i+j)/2]与x⽐较,如果A[(i+j)/2]=x,则返回(i+j)/2,如果A[(i+j)/2]回溯法的搜索特点是什么7. 不相同。
《算法设计与分析》期末必考复习及答案题整理
《算法设计与分析》期末必考复习及答案题整理1、分治法的基本思想:是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题互相独立且与原问题相同。
递归地解这些子问题,然后将各子问题的解合并得到原问题的解。
2、贪心选择性质:指所求问题的整体最优解可以通过一系列局部最优的选择,3、 Prim算法:设G=(V,E)是连通带权图,V={1,2,…,n}。
构造G的最小生成树的Prim算法的基本思想是:首先置S={1},然后,只要S是V的真子集,就作如下的贪心选择:选取满足条件i?S,j?V-S,且c[j]最小的边,将顶点j添加到S 中。
这个过程一直进行到S=V时为止。
4、什么是剪枝函数:回溯法搜索解空间树时,通常采用两种策略避免无效搜索,提高回溯法的搜索效率。
其一是用约束函数在扩展结点处剪去不满足约束的子树;其二是用限界函数剪去得不到最优解的子树。
这两类函数统称为剪枝函数。
6、分支限界法的基本思想:(1)分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。
(2)在分支限界法中,每一个活结点只有一次机会成为扩展结点。
活结点一旦成为扩展结点,就一次性产生其所有儿子结点。
在这些儿子结点中,导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被加入活结点表中。
(3)此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程,这个过程一直持续到找到所需的解或活结点表这空时为止。
5、什么是算法的复杂性:是该算法所需要的计算机资源的多少,它包括时间和空间资源。
6、最优子结构性质:该问题的最优解包含着其子问题的最优解。
7、回溯法:是一个既带有系统性又带有跳跃性的搜索算法。
这在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。
算法搜索至解空间树的任一结点时,先判断该结点是否包含问题的解。
如果肯定不包含,则跳过对以该结点为根的子树的搜索,逐层向其祖先结点回溯;否则,进入该子树,继续按深度优先策略搜索。
《算法分析与设计》期末复习题
一、选择题1.一个.java文件中可以有()个public类。
A.一个B.两个C.多个D.零个2.一个算法应该是()A.程序B.问题求解步骤的描述C.要满足五个基本特性D.A和C3.用计算机无法解决“打印所有素数”的问题,其原因是解决该问题的算法违背了算法特征中的()A.唯一性B.有穷性C.有0个或多个输入D.有输出4.某校有6位学生参加学生会主席竞选,得票数依次为130,20,98,15,67,3。
若采用冒泡排序算法对其进行排序,则完成第二遍时的结果是()A.3,15,130,20,98,67B.3,15,20,130,98,67C.3,15,20,67,130,98 D.3,15,20,67,98,1305.下列关于算法的描述,正确的是()A.一个算法的执行步骤可以是无限的B.一个完整的算法必须有输出C.算法只能用流程图表示D.一个完整的算法至少有一个输入6.Java Application源程序的主类是指包含有()方法的类。
A、main方法B、toString方法C、init方法D、actionPerfromed方法7.找出满足各位数字之和等于5的所有三位数可采用的算法思路是()A.分治法B.减治法C.蛮力法D.变治法8.在编写Java Application程序时,若需要使用到标准输入输出语句,必须在程序的开头写上( )语句。
A、import java.awt.* ;B、import java.applet.Applet ;C、import java.io.* ;D、import java.awt.Graphics ;9.计算某球队平均年龄的部分算法流程图如图所示,其中:c用来记录已输入球员的人数,sum用来计算有效数据之和,d用来存储从键盘输入的球员年龄值,输入0时表示输入结束。
图中空白处理框①和②处应填入的是()A.①sum ←sum + d B.①sum ←sum + c②c ←c + 1②c ←c + 1C.①sum ←sum + d D.①sum ←sum + c②d ←d + 1 ②d ←d + 110.报名参加冬季越野赛跑的某班5位学生的学号是:5,8,11,33,45。
算法设计与分析考试题目及答案
算法设计与分析考试题目及答案Revised at 16:25 am on June 10, 2021I hope tomorrow will definitely be better算法分析与设计期末复习题一、 选择题1.应用Johnson 法则的流水作业调度采用的算法是DA. 贪心算法B. 分支限界法C.分治法D. 动态规划算法塔问题如下图所示;现要求将塔座A 上的的所有圆盘移到塔座B 上,并仍按同样顺序叠置;移动圆盘时遵守Hanoi 塔问题的移动规则;由此设计出解Hanoi 塔问题的递归算法正确的为:B3. 动态规划算法的基本要素为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. Ofn+Ogn = Omin{fn,gn} D. f (n)O(g(n))g(n)O(f (n))=⇔=Hanoi 塔A. void hanoiint n, int A, int C, int B { if n > 0 {hanoin-1,A,C, B; moven,a,b;hanoin-1, C, B, A; } B. void hanoiint n, int A, int B, int C { if n > 0 {hanoin-1, A, C, B; moven,a,b; hanoin-1, C, B, A; }C. void hanoiint n, int C, int B, int A { if n > 0 { hanoin-1, A, C, B; moven,a,b; hanoin-1, C, B, A; }D. void hanoiint n, int C, int A, int B { if n > 0 {hanoin-1, A, C, B; moven,a,b;hanoin-1, C, B, A; }6.能采用贪心算法求最优解的问题,一般具有的重要性质为:AA. 最优子结构性质与贪心选择性质B.重叠子问题性质与贪心选择性质C.最优子结构性质与重叠子问题性质D. 预排序与递归调用7. 回溯法在问题的解空间树中,按D策略,从根结点出发搜索解空间树;广度优先 B. 活结点优先 C.扩展结点优先 D. 深度优先8. 分支限界法在问题的解空间树中,按A策略,从根结点出发搜索解空间树;A.广度优先 B. 活结点优先 C.扩展结点优先 D. 深度优先9. 程序块A是回溯法中遍历排列树的算法框架程序;A.B.C.D.10.xk的个数;11. 常见的两种分支限界法为DA. 广度优先分支限界法与深度优先分支限界法;B. 队列式FIFO分支限界法与堆栈式分支限界法;C. 排列树法与子集树法;D. 队列式FIFO分支限界法与优先队列式分支限界法;12. k带图灵机的空间复杂性Sn是指BA.k带图灵机处理所有长度为n的输入时,在某条带上所使用过的最大方格数;B.k带图灵机处理所有长度为n的输入时,在k条带上所使用过的方格数的总和;C.k带图灵机处理所有长度为n的输入时,在k条带上所使用过的平均方格数;D.k带图灵机处理所有长度为n的输入时,在某条带上所使用过的最小方格数;13. N P类语言在图灵机下的定义为DA.NP={L|L是一个能在非多项式时间内被一台NDTM所接受的语言};B.NP={L|L是一个能在多项式时间内被一台NDTM所接受的语言};C.NP={L|L是一个能在多项式时间内被一台DTM所接受的语言};D.NP={L|L是一个能在多项式时间内被一台NDTM所接受的语言};14. 记号O的定义正确的是A;A.Ogn = { fn | 存在正常数c和n0使得对所有n≥n0有:0≤ fn ≤cgn };B.Ogn = { fn | 存在正常数c和n0使得对所有n≥n0有:0≤ cgn ≤fn };>0使得对所有n≥n0C.Ogn = { fn | 对于任何正常数c>0,存在正数和n有:0 ≤fn<cgn };>0使得对所有n≥n0D.Ogn = { fn | 对于任何正常数c>0,存在正数和n有:0 ≤cgn < fn };15. 记号Ω的定义正确的是B;A.Ogn = { fn | 存在正常数c和n0使得对所有n≥n0有:0≤ fn ≤cgn };B.Ogn = { fn | 存在正常数c和n0使得对所有n≥n0有:0≤ cgn ≤fn };>0使得对所有n≥n0有:C.gn = { fn | 对于任何正常数c>0,存在正数和n0 ≤fn<cgn };D.gn = { fn | 对于任何正常数c>0,存在正数和n0 >0使得对所有n≥n0有:0 ≤cgn < fn };二、 填空题1. 下面程序段的所需要的计算时间为 2O(n ) ;2.3.4. 5.6. 用回溯法解题的一个显着特征是在搜索过程中动态产生问题的解空间;在任何时刻,算法只保存从根结点到当前扩展结点的路径;如果解空间树 中从根结点到叶结点的最长路径的长度为hn,则回溯法所需的计算空间通常为Ohn ;7. 回溯法的算法框架按照问题的解空间一般分为子集树算法框架与排列树算法框架;8. 用回溯法解0/1背包问题时,该问题的解空间结构为子集树结构; 9.用回溯法解批处理作业调度问题时,该问题的解空间结构为排列树结构; 10.用回溯法解0/1背包问题时,计算结点的上界的函数如下所示,请在空格中填入合适的内容:11. n m12. 用回溯法解图的m着色问题时,使用下面的函数OK检查当前扩展结点的每一个儿子所相应的颜色的可用性,则需耗时渐进时间上限Omn;13.;设分分解为k个子问题以及用merge将k个子问题的解合并为原问题的解需用fn个单位时间;用Tn表示该分治法解规模为|P|=n的问题所需的计算时间,则有:(1)1 ()(/)()1O nT nkT n m f n n=⎧=⎨+>⎩通过迭代法求得Tn的显式表达式为:log1log()(/)nmk j jmjT n n k f n m-==+∑试证明Tn的显式表达式的正确性;2. 举反例证明0/1背包问题若使用的算法是按照p i/w i的非递减次序考虑选择的物品,即只要正在被考虑的物品装得进就装入背包,则此方法不一定能得到最优解此题说明0/1背包问题与背包问题的不同;证明:举例如:p={7,4,4},w={3,2,2},c=4时,由于7/3最大,若按题目要求的方法,只能取第一个,收益是7;而此实例的最大的收益应该是8,取第2,3 个;3. 求证:Ofn+Ogn = Omax{fn,gn} ;证明:对于任意f1n∈ Ofn ,存在正常数c1和自然数n1,使得对所有n≥n1,有f1n≤ c1fn ;类似地,对于任意g1n ∈ Ogn ,存在正常数c2和自然数n2,使得对所有n≥n2,有g1n ≤c2gn ;令c3=max{c1, c2}, n3 =max{n1, n2},hn= max{fn,gn} ;则对所有的 n ≥ n3,有f1n +g1n ≤ c1fn + c2gn≤c3fn + c3gn= c3fn + gn≤ c32 max{fn,gn} = 2c3hn = Omax{fn,gn} .4. 求证最优装载问题具有贪心选择性质;最优装载问题:有一批集装箱要装上一艘载重量为c 的轮船;其中集装箱i 的重量为Wi;最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船; 设集装箱已依其重量从小到大排序,x 1,x 2,…,x n 是最优装载问题的一个最优解;又设1min{|1}i i nk i x ≤≤== ;如果给定的最优装载问题有解,则有1k n ≤≤;证明: 四、 解答题1. 机器调度问题;问题描述:现在有n 件任务和无限多台的机器,任务可以在机器上得到处理;每件任务的开始时间为s i ,完成时间为f i ,s i <f i ;s i ,f i 为处理任务i 的时间范围;两个任务i,j 重叠指两个任务的时间范围区间有重叠,而并非指i,j 的起点或终点重合;例如:区间1,4与区间2,4重叠,而与4,7不重叠;一个可行的任务分配是指在分配中没有两件重叠的任务分配给同一台机器;因此,在可行的分配中每台机器在任何时刻最多只处理一个任务;最优分配是指使用的机器最少的可行分配方案;问题实例:若任务占用的时间范围是{1,4,2,5,4,5,2,6,4,7},则按时完成所有任务最少需要几台机器提示:使用贪心算法画出工作在对应的机器上的分配情况;2. 已知非齐次递归方程:f (n)bf (n 1)g(n)f (0)c =-+⎧⎨=⎩ ,其中,b 、c 是常数,gn 是n 的某一个函数;则fn 的非递归表达式为:nnn i i 1f (n)cb b g(i)-==+∑;现有Hanoi 塔问题的递归方程为:h(n)2h(n 1)1h(1)1=-+⎧⎨=⎩ ,求hn 的非递归表达式;解:利用给出的关系式,此时有:b=2, c=1, gn=1, 从n 递推到1,有: 3. 单源最短路径的求解;问题的描述:给定带权有向图如下图所示G =V,E,其中每条边的权是非负实数;另外,还给定V 中的一个顶点,称为源;现在要计算从源到所有其它各顶点的最短路长度;这里路的长度是指路上各边权之和;这个问题通常称为单源最短路径问题;解法:现采用Dijkstra 算法计算从源顶点1到其它顶点间最短路径;请将此过程填入下表中;4. 请写出用回溯法解装载问题的函数; 装载问题:有一批共n 个集装箱要装上2艘载重量分别为c1和c2的轮船,其中集装箱i 的重量为wi,且121ni i w c c =≤+∑;装载问题要求确定是否有一个合理的装载方案可将这n 个集装箱装上这2艘轮船;如果有,找出一种装载方案;解:void backtrack int i{用分支限界法解装载问题时,对算法进行了一些改进,下面的程序段给出了改进部分;试说明斜线部分完成什么功能,以及这样做的原因,即采用这样的方式,算法在执行上有什么不同;初始时将;也就是说,重量仅在搜索进入左子树是增加,因此,可以在算法每一次进入左子树时更新bestw 的值;43 2 110030maxint10 - {1} 初始 dist5 dist4 dist3 dist2 u S 迭代7. 最长公共子序列问题:给定2个序列X={x 1,x2,…,xm }和Y={y 1,y2,…,yn },找出X 和Y 的最长公共子序列;由最长公共子序列问题的最优子结构性质建立子问题最优值的递归关系;用cij 记录序列Xi 和Yj 的最长公共子序列的长度;其中, Xi={x1,x2,…,xi};Y j={y1,y2,…,yj};当i=0或j=0时,空序列是Xi 和Yj 的最长公共子序列;故此时Cij=0;其它情况下,由最优子结构性质可建立递归关系如下:00,0[][][1][1]1,0;max{[][1],[1][]},0;i j i ji j c i j c i j i j x y c i j c i j i j x y ⎧==⎪=--+>=⎨⎪-->≠⎩在程序中,bij 记录Cij 的值是由哪一个子问题的解得到的;8.1.2.3.4.5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含___________;6.动态规划算法的基本思想是将待求解问题分解成若干____________,先求解___________,然后从这些____________的解得到原问题的解;7.以深度优先方式系统搜索问题解的算法称为_____________;背包问题的回溯算法所需的计算时间为_____________,用动态规划算法所需的计算时间为____________;9.动态规划算法的两个基本要素是___________和___________;10.二分搜索算法是利用_______________实现的算法;二、综合题50分1.写出设计动态规划算法的主要步骤;2.流水作业调度问题的johnson算法的思想;3.若n=4,在机器M1和M2上加工作业i所需的时间分别为ai 和bi,且a 1,a2,a3,a4=4,5,12,10,b1,b2,b3,b4=8,2,15,9求4个作业的最优调度方案,并计算最优值;4.使用回溯法解0/1背包问题:n=3,C=9,V={6,10,3},W={3,4,4},其解空间有长度为3的0-1向量组成,要求用一棵完全二叉树表示其解空间从根出发,左1右0,并画出其解空间树,计算其最优值及最优解;5.设S={X1,X2,···,Xn}是严格递增的有序集,利用二叉树的结点来存储S中的元素,在表示S的二叉搜索树中搜索一个元素X,返回的结果有两种情形,1在二叉搜索树的内结点中找到X=Xi ,其概率为bi;2在二叉搜索树的叶结点中确定X∈Xi ,Xi+1,其概率为ai;在表示S的二叉搜索树T中,设存储元素Xi的结点深度为C i ;叶结点Xi,Xi+1的结点深度为di,则二叉搜索树T的平均路长p为多少假设二叉搜索树Tij={Xi ,Xi+1,···,Xj}最优值为mij,Wij= ai-1+bi+···+bj+aj,则mij1<=i<=j<=n递归关系表达式为什么6.描述0-1背包问题;三、简答题30分1.流水作业调度中,已知有n个作业,机器M1和M2上加工作业i所需的时间分别为ai 和bi,请写出流水作业调度问题的johnson法则中对ai和bi的排序算法;函数名可写为sorts,n2.最优二叉搜索树问题的动态规划算法设函数名binarysearchtree答案:一、填空1.确定性有穷性可行性 0个或多个输入一个或多个输出2.时间复杂性空间复杂性时间复杂度高低3. 该问题具有最优子结构性质4.{BABCD}或{CABCD}或{CADCD}5.一个最优解6.子问题子问题子问题7.回溯法8. on2n omin{nc,2n}9.最优子结构重叠子问题10.动态规划法二、综合题1.①问题具有最优子结构性质;②构造最优值的递归关系表达式;③最优值的算法描述;④构造最优解;2. ①令N1={i|ai<bi},N2={i|ai>=bi};②将N1中作业按ai的非减序排序得到N1’,将N2中作业按bi的非增序排序得到N2’;③N1’中作业接N2’中作业就构成了满足Johnson法则的最优调度;3.步骤为:N1={1,3},N2={2,4};N 1’={1,3}, N2’={4,2};最优值为:384.解空间为{0,0,0,0,1,0,0,0,1,1,0,0,0,1,1,1,0,1, 1,1,0,1,1,1}; 解空间树为:该问题的最优值为:16 最优解为:1,1,0 5.二叉树T 的平均路长P=∑=+ni 1Ci)(1*bi +∑=nj 0dj *aj{mij=0 i>j6.已知一个背包的容量为C,有n 件物品,物品i 的重量为W i ,价值为V i ,求应如何选择装入背包中的物品,使得装入背包中物品的总价值最大; 三、简答题 1.void sortflowjope s,int n {int i,k,j,l;fori=1;i<=n-1;i++ag=0 k++; ifk>n break;ag==0ifsk.a>sj.a k=j; swapsi.index,sk.index; swapsi.tag,sk.tag;} }l=i;<sj.b k=j;swapsi.index,sk.index; ag,sk.tag; }mij=Wij+min{mik+mk+1j} 1<=i<=j<=n,mii-1=0}2.void binarysearchtreeint a,int b,int n,int m,int s,int w{int i,j,k,t,l;fori=1;i<=n+1;i++{wii-1=ai-1;mii-1=0;}forl=0;l<=n-1;l++Init-single-sourceG,s2. S=Φ3. Q=VGQ<> Φdo u=minQS=S∪{u}for each vertex 3do 4四、算法理解题本题10分根据优先队列式分支限界法,求下图中从v1点到v9点的单源最短路径,请画出求得最优解的解空间树;要求中间被舍弃的结点用×标记,获得中间解的结点用单圆圈○框起,最优解用双圆圈◎框起;五、算法理解题本题5分设有n=2k个运动员要进行循环赛,现设计一个满足以下要求的比赛日程表:①每个选手必须与其他n-1名选手比赛各一次;②每个选手一天至多只能赛一次;③循环赛要在最短时间内完成;1如果n=2k,循环赛最少需要进行几天;2当n=23=8时,请画出循环赛日程表;六、算法设计题本题15分分别用贪心算法、动态规划法、回溯法设计0-1背包问题;要求:说明所使用的算法策略;写出算法实现的主要步骤;分析算法的时间;七、算法设计题本题10分通过键盘输入一个高精度的正整数nn的有效位数≤240,去掉其中任意s个数字后,剩下的数字按原左右次序将组成一个新的正整数;编程对给定的n 和s,寻找一种方案,使得剩下的数字组成的新数最小;样例输入178543S=4样例输出13一、填空题本题15分,每小题1分1.规则一系列运算2. 随机存取机RAMRandom Access Machine;随机存取存储程序机RASPRandom Access Stored Program Machine;图灵机Turing Machine3. 算法效率4. 时间、空间、时间复杂度、空间复杂度5.2n6.最好局部最优选择7. 贪心选择最优子结构二、简答题本题25分,每小题5分1、分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同;对这k个子问题分别求解;如果子问题的规模仍然不够小,则再划分为k个子问题,如此递归的进行下去,直到问题规模足够小,很容易求出其解为止;将求出的小规模的问题的解合并为一个更大规模的问题的解,自底向上逐步求出原来问题的解;2、“最优化原理”用数学化的语言来描述:假设为了解决某一优化问题,需要依次作出n个决策D1,D2,…,Dn,如若这个决策序列是最优的,对于任何一个整数k,1 < k < n,不论前面k个决策是怎样的,以后的最优决策只取决于由前面决策所确定的当前状态,即以后的决策Dk+1,Dk+2,…,Dn也是最优的;3、某个问题的最优解包含着其子问题的最优解;这种性质称为最优子结构性质;4、回溯法的基本思想是在一棵含有问题全部可能解的状态空间树上进行深度优先搜索,解为叶子结点;搜索过程中,每到达一个结点时,则判断该结点为根的子树是否含有问题的解,如果可以确定该子树中不含有问题的解,则放弃对该子树的搜索,退回到上层父结点,继续下一步深度优先搜索过程;在回溯法中,并不是先构造出整棵状态空间树,再进行搜索,而是在搜索过程,逐步构造出状态空间树,即边搜索,边构造;5、PPolynomial问题:也即是多项式复杂程度的问题;NP就是Non-deterministicPolynomial的问题,也即是多项式复杂程度的非确定性问题;NPCNP Complete问题,这种问题只有把解域里面的所有可能都穷举了之后才能得出答案,这样的问题是NP里面最难的问题,这种问题就是NPC问题;三、算法填空本题20分,每小题5分1、n后问题回溯算法1 Mj&&Li+j&&Ri-j+N2 Mj=Li+j=Ri-j+N=1;3 tryi+1,M,L,R,A4 Aij=05 Mj=Li+j=Ri-j+N=0 2、数塔问题; 1c<=r2trc+=tr+1c 3trc+=tr+1c+1 3、Hanoi 算法 1movea,c2Hanoin-1, a, c , b 3Movea,c 4、1pv=NIL 2pv=u3 v ∈adju 4Relaxu,v,w四、算法理解题本题10分五、18天2分;2当n=23=8时,循环赛日程表3分;六、算法设计题本题15分 1贪心算法 Onlogn ➢ 首先计算每种物品单位重量的价值Vi/Wi,然后,依贪心选择策略,将尽可能多的单位重量价值最高的物品装入背包;若将这种物品全部装入背包后,背包内的物品总重量未超过C,则选择单位重量价值次高的物品并尽可能多地装入背包;依此策略一直地进行下去,直到背包装满为止; ➢ 具体算法可描述如下:void Knapsackint n,float M,float v,float w,float x {Sortn,v,w; int i;for i=1;i<=n;i++ xi=0; float c=M;for i=1;i<=n;i++ {if wi>c break; xi=1; c-=wi; }if i<=n xi=c/wi; }2动态规划法 Oncmi,j 是背包容量为j,可选择物品为i,i+1,…,n 时0-1背包问题的最优值;由0-1背包问题的最优子结构性质,可以建立计算mi,j 的递归式如下;void KnapSackint v,int w,int c,int n,int m11 {int jMax=minwn-1,c;for j=0;j<=jMax;j++ /mn,j=0 0=<j<wn/ mnj=0;1 2 3 4 5 6 7 82 1 43 6 5 8 73 4 1 2 7 8 5 64 3 2 1 8 7 6 55 6 7 8 1 2 3 4 6 5 8 7 2 1 4 37 8 5 6 3 4 1 28 7 6 5 4 3 2 1for j=wn;j<=c;j++ /mn,j=vn j>=wn/mnj=vn;for i=n-1;i>1;i--{ int jMax=minwi-1,c;for j=0;j<=jMax;j++ /mi,j=mi+1,j 0=<j<wi/mij=mi+1j;for j=wi;j<=c;j++/mn,j=vn j>=wn/mij=maxmi+1j,mi+1j-wi+vi;}m1c=m2c;ifc>=w1m1c=maxm1c,m2c-w1+v1;}3回溯法 O2ncw:当前重量 cp:当前价值 bestp:当前最优值voidbacktrack int i//回溯法 i初值1{ifi>n //到达叶结点{ bestp=cp; return; }ifcw+wi<=c //搜索左子树{cw+=wi;cp+=pi;backtracki+1;cw-=wi;cp-=pi;}ifBoundi+1>bestp//搜索右子树backtracki+1;}七、算法设计题本题10分为了尽可能地逼近目标,我们选取的贪心策略为:每一步总是选择一个使剩下的数最小的数字删去,即按高位到低位的顺序搜索,若各位数字递增,则删除最后一个数字,否则删除第一个递减区间的首字符;然后回到串首,按上述规则再删除下一个数字;重复以上过程s次,剩下的数字串便是问题的解了;具体算法如下:输入s, n;while s > 0{ i=1; //从串首开始找while i < lengthn && ni<ni+1{i++;}deleten,i,1; //删除字符串n的第i个字符s--;}while lengthn>1&& n1=‘0’deleten,1,1; //删去串首可能产生的无用零输出n;。
2014中南大学网络教育课程考试:算法分析与设计复习试题及答案解析
2014中南大学网络教育课程考试:算法分析与设计复习试题及答案解析算法分析与设计一、简要回答下列问题:1.算法重要特性是什么?2.算法分析的目的是什么?3.算法的时间复杂性与问题的什么因素相关?4.算法的渐进时间复杂性的含义?5.最坏情况下的时间复杂性和平均时间复杂性有什么不同?6.简述二分检索(折半查找)算法的基本过程。
7.背包问题的目标函数和贪心算法最优化量度相同吗?8.采用回溯法求解的问题,其解如何表示?有什么规定?9.回溯法的搜索特点是什么?10.n皇后问题回溯算法的判别函数place的基本流程是什么?11.为什么用分治法设计的算法一般有递归调用?12.为什么要分析最坏情况下的算法时间复杂性?13.简述渐进时间复杂性上界的定义。
14.二分检索算法最多的比较次数?15.快速排序算法最坏情况下需要多少次比较运算?16.贪心算法的基本思想?17.回溯法的解(x1,x2,……x n)的隐约束一般指什么?18.阐述归并排序的分治思路。
19.快速排序的基本思想是什么。
20.什么是直接递归和间接递归?消除递归一般要用到什么数据结构?21.什么是哈密顿环问题?22.用回溯法求解哈密顿环,如何定义判定函数?23.请写出prim算法的基本思想。
二、复杂性分析1、MERGESORT(low,high)if low<high;then mid←(low,high)/2;MERGESORT(low,mid);MERGESORT(mid+1,high);MERGE(low,mid,high);endifend MERGESORT2、procedure S1(P,W,M,X,n)i←1; a←0while i≤ n doif W(i)>M then return endifa←a+ii←i+1 ;repeatend3.procedure PARTITION(m,p)Integer m,p,i;global A(m:p-1)v←A(m);i←mlooploop i←i+1 until A(i) ≥v repeatloop p←p-1 until A(p) ≤v repeatif i<pthen call INTERCHANGE(A(i),A(p))else exitendifrepeatA(m) ←A(p);A(p) ←vEnd PARTITION4.procedure F1(n)if n<2 then return(1)else return(F2(2,n,1,1))endifend F1procedure F2(i,n,x,y)if i≤nthen call F2(i+1,n,y,x+y)endifreturn(y)end F25.procedure MAX(A,n,j)xmax←A(1);j←1for i←2 to n doif A(i)>xmax then xmax←A(i); j←i;endif repeatend MAX6.procedure BINSRCH(A,n,x,j)integer low,high,mid,j,n;low←1;high←nwhile low≤high domid←|_(low+high)/2_|case:x<A(mid):high ←mid-1:x>A(mid):low ←mid+1 :else:j ←mid; returnendcase repeat j ←0 end BINSRCH三、算法理解1、写出多段图最短路经动态规划算法求解下列实例的过程,并求出最优值。
东南大学算法设计与分析复习题
什么是基本运算?答:基本运算是解决问题时占支配地位的运算(一般1种,偶尔两种);讨论一个算法优劣时,只讨论基本运算的执行次数。
什么是算法的时间复杂性(度)?答:算法的时间复杂性(度)是指用输入规模的某个函数来表示算法的基本运算量。
T(n)=4n3什么是算法的渐近时间复杂性?答:当输入规模趋向于极限情形时(相当大)的时间复杂性。
表示渐进时间复杂性的三个记号的具体定义是什么?答:1. T(n)= O(f(n)):若存在c > 0,和正整数n0≣1,使得当n≣n0时,总有T(n)≢c*f(n)。
(给出了算法时间复杂度的上界,不可能比c*f(n)更大)2. T(n)=Ω(f(n)):若存在c > 0,和正整数n0≣1,使得当n≣n0时,存在无(给出了算法时间复杂度的下界,复杂度不可能比c*f(n)穷多个n ,使得T(n)≣c*f(n)成立。
更小)3. T(n)= Θ(f(n)):若存在c1,c2>0,和正整数n0≣1,使得当n≣n0时,总有T(n)≢c1*f(n),且有无穷多个n,使得T(n)≣c2*f(n)成立,即:T(n)= O(f(n))与T(n)=Ω(f(n))都成立。
(既给出了算法时间复杂度的上界,也给出了下界)什么是最坏情况时间复杂性?什么是平均情况时间复杂性?答:最坏情况时间复杂性是规模为n的所有输入中,基本运算执行次数为最多的时间复杂性。
平均情况时间复杂性是规模为n的所有输入的算法时间复杂度的平均值(一般均假设每种输入情况以等概率出现)。
一般认为什么是算法?什么是计算过程?答:一般认为,算法是由若干条指令组成的有穷序列,有五个特性a.确定性(无二义)b.能行性(每条指令能够执行)c.输入 d.输出 e.有穷性(每条指令执行的次数有穷)只满足前4条而不满足第5条的有穷指令序列通常称之为计算过程。
算法分析与设计—部分复习题答案
算法设计与分析复习题1、一个算法应有哪些主要特征?有限性、确定性、输入、输出、可行性2、分治法(Divide and Conquer)与动态规划(Dynamic Programming)有什么不同?分治法是将一个问题划分成一系列独立的子问题,分别处理后将结果组合以得到原问题的答案。
动态规划同样将一个问题划分成一系列子问题进行处理,但当子问题不是互相独立而是互有联系时,动态规划不会重复计算子问题间联系的问题,是更高效的解决办法。
(具体解释太长了这个答案可以得点分)3、试举例说明贪心算法对有的问题是有效的,而对一些问题是无效的。
贪心算法的思想是通过选择局部最优以求得最优解,但某些最优解问题无法由局部最优推出,如0-1 knapsack problem(背包问题,一个能装20斤的背包装入一定商品,要求价值最高)4、求解方程f(n)=f(n-1)+f(n-2),f(1)=f(2)=1。
(斐波那契数列)(证明太复杂了不贴了)k5、求解方程T(n)=2T(n/2)+1,T(1)=1,设n=2。
T(n)=2*(2*T(n/4)+1)+1=2*(2*(T(n/8)+1)+1)+1 推出以下方程且且证明用数学归纳法。
void max_min(int a[],int m, int n, int* min) //运用分治法查找最大值与最小值{ int middle,hmin,gmin; if( m==n ) { * min = a[m]; } else if(m == n-1) { if( a[m] > a[n]) {*min = a[n]; } else { *min =a[m]; } } else { middle = (m+n)/2; max_min(a,m,middle,&gmin); max_min(a,middle+1,n,&hmin); if(gmin < hmin) { *min = gmin; } else { *min= hmin; } } } 6、编写一个Quick Sorting 算法,并分析时间复杂性。
算法分析复习题目及答案
一。
选择题1、二分搜索算法是利用( A )实现的算法。
A、分治策略B、动态规划法C、贪心法D、回溯法2、下列不是动态规划算法基本步骤的是( B )。
A、找出最优解的性质B、构造最优解C、算出最优解D、定义最优解3、最大效益优先是( A )的一搜索方式。
A、分支界限法B、动态规划法C、贪心法D、回溯法4、在下列算法中有时找不到问题解的是( B )。
A、蒙特卡罗算法B、拉斯维加斯算法C、舍伍德算法D、数值概率算法5. 回溯法解旅行售货员问题时的解空间树是(B )。
A、子集树B、排列树C、深度优先生成树D、广度优先生成树6.下列算法中通常以自底向上的方式求解最优解的是( B )。
A、备忘录法B、动态规划法C、贪心法D、回溯法7、衡量一个算法好坏的标准是(C)。
A 运行速度快B 占用空间少C 时间复杂度低D 代码短8、以下不可以使用分治法求解的是(D)。
A 棋盘覆盖问题B 选择问题C 归并排序D 0/1背包问题9. 实现循环赛日程表利用的算法是( a )。
A、分治策略B、动态规划法C、贪心法D、回溯法10、下列随机算法中运行时有时候成功有时候失败的是()A 数值概率算法B 舍伍德算法C 拉斯维加斯算法D 蒙特卡罗算法11.下面不是分支界限法搜索方式的是( D )。
A、广度优先B、最小耗费优先C、最大效益优先D、深度优先12.下列算法中通常以深度优先方式系统搜索问题解的是( D )。
A、备忘录法B、动态规划法C、贪心法D、回溯法13.备忘录方法是那种算法的变形。
( B )A、分治法B、动态规划法C、贪心法D、回溯法14.哈弗曼编码的贪心算法所需的计算时间为( B )。
A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)15.分支限界法解最大团问题时,活结点表的组织形式是( B )。
A、最小堆B、最大堆C、栈D、数组16.最长公共子序列算法利用的算法是( B )。
A、分支界限法B、动态规划法C、贪心法D、回溯法17.实现棋盘覆盖算法利用的算法是( A )。
计算机算法设计与分析期终考试复习题
计算机算法设计与分析复习题一、填空题1、一个算法复杂性的高低体现在计算机运行该算法所需的时间和存储器资源上,因此算法的复杂性有时间复杂性和空间复杂性之分。
2、出自于“平衡子问题”的思想,通常分治法在分割原问题,形成若干子问题时,这些子问题的规模都大致相同。
3、使用二分搜索算法在n个有序元素表中搜索一个特定元素,在最佳情况下,搜索的时间复杂性为O(1),在最坏情况下,搜索的时间复杂性为O (logn)。
4、已知一个分治算法耗费的计算时间T(n),T(n)满足如下递归方程: n?2O(1)? T(n)??2T(n/2)?O(n)n?2?解得此递归方可得T(n)= O()。
nlogn 5、动态规划算法有一个变形方法备忘录方法。
这种方法不同于动态规划算法“自底向上”的填充方向,而是“自顶向下”的递归方向,为每个解过的子问题建立了备忘录以备需要时查看,同样也可避免相同子问题的重复求解。
递归的二分查找算法在divide阶段所花的时间是 O(1) ,conquer阶段6.所花的时间是 T(n/2) ,算法的时间复杂度是 O( log n) 。
7.Prim算法利用贪心策略求解最小生成树问题,其时间复杂度是2O(n) 。
8.背包问题可用贪心法,回溯法等策略求解。
39.用动态规划算法计算矩阵连乘问题的最优值所花的时间是 O(n) ,子2问题空间大小是 O(n) 。
10.图的m着色问题可用回溯法求解,其解空间树中叶子结点个数是nm ,解空间树中每个内结点的孩子数是 m 。
11.单源最短路径问题可用贪心法、分支限界等策略求解。
12、一个算法的优劣可以用(时间复杂度)与(空间复杂度)与来衡量。
13、回溯法在问题的解空间中,按(深度优先方式)从根结点出发搜索解空间树。
14、直接或间接地调用自身的算法称为(递归算法)。
15、?记号在算法复杂性的表示法中表示(渐进确界或紧致界)。
16、在分治法中,使子问题规模大致相等的做法是出自一种(平衡(banlancing)子问题)的思想。
算法分析与设计考试复习题及参考答案jing
一、填空题1、算法的复杂性是算法效率2、的度量,是评价算法优劣的重要依据。
1、设n为正整数,利用大“O(·)”记号,将下列程序段的执行时间表示为n的函数,则下面程序段的时间复杂度为O(n)2、。
i=1; k=0;while(i<n) { k=k+10*i;i++; }3、计算机的资源最重要的是时间和空间资源。
因而,算法的复杂性有时间复杂度和空间复杂度之分。
3、f(n)= 6×2n+n2,f(n)的渐进性态f(n)= O( 2n4、 )5、递归是指函数直接或者间接通过一些语句调用自身。
4、分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立6、且与原问题相同。
二、选择题(本题20分,每小题2分)1、分支限界法与回溯法都是在问题的解空间树T上搜索问题的解,二者( B )。
A.求解目标不同,搜索方式相同B.求解目标不同,搜索方式也不同C.求解目标相同,搜索方式不同D.求解目标相同,搜索方式也相同2、回溯法在解空间树T上的搜索方式是( A)。
A.深度优先B.广度优先C.最小耗费优先D.活结点优先3、在对问题的解空间树进行搜索的方法中,一个活结点最多有一次机会成为活结点的是( B )。
A.回溯法B.分支限界法C.回溯法和分支限界法D.回溯法求解子集树问题4、以下关于判定问题难易处理的叙述中正确的是( C )。
A.可以由多项式时间算法求解的问题是难处理的B.需要超过多项式时间算法求解的问题是易处理的C.可以由多项式时间算法求解的问题是易处理的D.需要超过多项式时间算法求解的问题是不能处理的5、设f(N),g(N)是定义在正数集上的正函数,如果存在正的常数C和自然数N0,使得当N≥N0时有f(N)≤Cg(N),则称函数f(N)当N充分大时有上界g(N),记作f(N)=O(g(N)),即f(N)的阶( A )g(N)的阶。
A.不高于B.不低于C.等价于D.逼近6、对于含有n个元素的子集树问题,最坏情况下其解空间的叶结点数目为( B )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法分析与设计复习题及答案一、单选题
1.D 2.B 3.C 4.D 5.D 6.D 7.C 8.D 9.B 10.C
11.D 12.B 13.D 14.C 15.C 16.D 17.D 18.D 19.D 20.C
1.与算法英文单词algorithm具有相同来源的单词是()。
A logarithm
B algiros
C arithmos
D algebra
2.根据执行算法的计算机指令体系结构,算法可以分为()。
A精确算法与近似算法B串行算法语并行算法
C稳定算法与不稳定算法D32位算法与64位算法
3.具有10个节点的完全二叉树的高度是()。
A6B5C3D 2
4.下列函数关系随着输入量增大增加最快的是()。
Alog2n B n2 C 2n D n!
5.下列程序段的S执行的次数为( )。
for i ←0 to n-1 do
for j ←0 to i-1 do
s //某种基本操作
A.n2 B n2/2 C n*(n+1) D n(n+1)/2
6.Fibonacci数列的第十项为( )。
A 3
B 13
C 21
D 34
7.4个盘子的汉诺塔,至少要执行移动操作的次数为( )。
A 11次
B 13次
C 15次
D 17次
8.下列序列不是堆的是()。
A 99,85,98,77,80,60,82,40,22,10,66
B 99,98,85,82,80,77,66,60,40,22,10
C 10,22,40,60,66,77,80,82,85,98,99
D 99,85,40,77,80,60,66,98,82,10,22
9.Strassen矩阵乘法的算法复杂度为()。
AΘ(n3)BΘ(n2.807) CΘ(n2) DΘ(n)
10.集合A的幂集是()。
A.A中所有元素的集合 B. A的子集合
C. A 的所有子集合的集合 D. 空集
11.与算法英文单词algorithm具有相同来源的单词是()。
A logarithm
B algiros
C arithmos
D algebra
12.从排序过程是否完全在内存中显示,排序问题可以分为()。
A稳定排序与不稳定排序B内排序与外排序
C直接排序与间接排序D主排序与辅助排序
13.下列()不是衡量算法的标准。
A时间效率B空间效率
C问题难度D适应能力
14.对于根树,出度为零的节点为()。
A0节点B根节点C叶节点D分支节点
15.对完全二叉树自顶向下,从左向右给节点编号,节点编号为10的父节点编号为()。
A0B2C4D6
16.下列程序段的算法时间的复杂度为()。
for i ←0 to n do
for j ←0 to m do。