算法复习题

算法复习试题一、名词解释:1、算法:就是一组有穷的规则,它规定了解决某一特定类型问题的一系列运算。

2、贪心算法:能够得到某种量度意义下的最优解的分级处理方法称为贪心算法。

3、分治法:分治法的求解思想就是把整个问题分成若干个小问题后分的治之4、递归过程:一个递归过程的执行类似于多个子程序的嵌套调用,递归过程是自己调用自己本身代码。

递归算法的特点:思路清晰,算法的描述简洁且易理解。

5、集合:在研究某一类对象时,可把这类对象的整体称为集合。

6、生成树:设G=(V,E)是一个无向连通图。

如果G的生成子图T=(V,E')是一棵树,则称T是G的一棵生成树。

7、算法具有以下5个属性:有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。

确定性:算法中每一条指令必须有确切的含义。

不存在二义性。

只有一个入口和一个出口可行性:就是算法描述的操作是可以通过已经实现的基本运算执行有限次来实现的。

输入:一个算法有零个或多个输入,这些输入取自于某个特定对象的集合。

输出:一个算法有一个或多个输出,这些输出同输入有着某些特定关系的量。

8、迭代法:称辗转法,是一种不断用变量的旧值递推出新值的解决问题的方法。

9、贪婪法: 是一种不追求最优解,只希望得到较为满意解的方法。

贪婪法不要回溯10、动态规划:是一种将问题实例分解为更小的、相似的子问题,并存储子问题的解而避免计算重复的子问题,以解决最优化问题的算法策略。

11、分支限界法:是一种用于求解组合优化问题的排除非解的搜索算法。

12、树:树是一个或多个结点的有限集合。

12、二元树:它是结点的有限集合,它或者为空,或者由一个根和两棵树(左子树和右子树)的不相交的二元树所组成。

13、二分检索树:T是一棵二元树,它或者为空,或者其每个结点含有一个可比较大小的数据元素。

14、图:图是数据结构,一个图G是由称之为结点V和边E的两个集合组成的15、最优解:使目标函数取极值(极大值或极小值)的可行解。

16、回溯法:回溯法也称为试探法,该方法首先暂时放弃关于问题规模大小的限制,并将问题的候选解按某种顺序逐一枚举和检验。

二、选择题1、二分搜索算法是利用( A )实现的算法。

A、分治策略B、动态规划法C、贪心法D、回溯法2、下列不是动态规划算法基本步骤的是( A )。

A、找出最优解的性质B、构造最优解C、算出最优解D、定义最优解3、最大效益优先是( A )的一搜索方式。

A、分支界限法B、动态规划法C、贪心法D、回溯法4、在下列算法中有时找不到问题解的是( B )。

A、蒙特卡罗算法B、拉斯维加斯算法C、舍伍德算法D、数值概率算法5. 回溯法解旅行售货员问题时的解空间树是( A )。

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、下列随机算法中运行时有时候成功有时候失败的是( C )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 )。

A、分治法B、动态规划法C、贪心法D、回溯法18.下面是贪心算法的基本要素的是( C )。

A、重叠子问题B、构造最优解C、贪心选择性质D、定义最优解19.回溯法的效率不依赖于下列哪些因素( D )A.满足显约束的值的个数B. 计算约束函数的时间C. 计算限界函数的时间D. 确定解空间的时间20. 动态规划算法的基本要素为( C )A. 最优子结构性质与贪心选择性质 B.重叠子问题性质与贪心选择性质C.最优子结构性质与重叠子问题性质 D. 预排序与递归调用21、下面关于NP问题说法正确的是( B )A NP问题都是不可能解决的问题B P类问题包含在NP类问题中C NP完全问题是P类问题的子集D NP类问题包含在P类问题中22.下列哪一种算法不是随机化算法( C )A. 蒙特卡罗算法B. 拉斯维加斯算法C.动态规划算法D.舍伍德算法23. ( D )是贪心算法与动态规划算法的共同点。

A、重叠子问题B、构造最优解C、贪心选择性质D、最优子结构性质24. 分支限界法解旅行售货员问题时,活结点表的组织形式是( A )。

A、最小堆B、最大堆C、栈D、数组25、Strassen矩阵乘法是利用( A )实现的算法。

A、分治策略B、动态规划法C、贪心法D、回溯法26、使用分治法求解不需要满足的条件是( A )。

A 子问题必须是一样的B 子问题不能够重复C 子问题的解可以合并D 原问题和子问题使用相同的方法解27、下面问题( B )不能使用贪心法解决。

A 单源最短路径问题 B、 N皇后问题 C、最小花费生成树问题D、背包问题28、下列算法中不能解决0/1背包问题的是( A )A 贪心法B 动态规划C 回溯法D 分支限界法29、回溯法搜索状态空间树是按照(C )的顺序。

A 中序遍历B 广度优先遍历C 深度优先遍历D 层次优先遍历30.实现合并排序利用的算法是( A )。

A、分治策略B、动态规划法C、贪心法D、回溯法31.下列是动态规划算法基本要素的是( D )。

A、定义最优解B、构造最优解C、算出最优解D、子问题重叠性质32.采用广度优先策略搜索的算法是( A )。

A、分支界限法B、动态规划法C、贪心法D、回溯法33.实现大整数的乘法是利用的算法( C )。

A、贪心法B、动态规划法C、分治策略D、回溯法34.0-1背包问题的回溯算法所需的计算时间为( A )A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)35.贪心算法与动态规划算法的主要区别是( B )。

A、最优子结构B、贪心选择性质C、构造最优解D、定义最优解36.下列哪一种算法是随机化算法( D )A. 贪心算法B. 回溯法C.动态规划算法D.舍伍德算法37. 一个问题可用动态规划算法或贪心算法求解的关键特征是问题的( B )。

A、重叠子问题B、最优子结构性质C、贪心选择性质D、定义最优解38.采用贪心算法的最优装载问题的主要计算量在于将集装箱依其重量从小到大排序,故算法的时间复杂度为 ( B ) 。

A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)39. 以深度优先方式系统搜索问题解的算法称为 ( D ) 。

A、分支界限算法B、概率算法C、贪心算法D、回溯算法40.应用Johnson法则的流水作业调度采用的算法是(D)A. 贪心算法B. 分支限界法C.分治法D. 动态规划算法41. 算法分析中,记号O表示( B ),记号Ω表示( A ),记号Θ表示( D )。

A.渐进下界B.渐进上界C.非紧上界D.紧渐进界42. 能采用贪心算法求最优解的问题,一般具有的重要性质为:( A )A. 最优子结构性质与贪心选择性质 B.重叠子问题性质与贪心选择性质C.最优子结构性质与重叠子问题性质 D. 预排序与递归调用43.一个.java文件中可以有( A )个public类。

A.一个 B.两个 C.多个 D.零个44.一个算法应该是( C )A.程序 B.问题求解步骤的描述C.要满足五个基本特性 D.A和C45. 用计算机无法解决“打印所有素数”的问题,其原因是解决该问题的算法违背了算法特征中的( B )A.唯一性B.有穷性 C.有0个或多个输入 D.有输出46.报名参加冬季越野赛跑的某班5位学生的学号是:5,8,11,33,45。

利用折半查找,查找学号为33号学生的过程中,依次被访问到的学号是( D )A.5,11,33 B.8,33 C.11,45,33 D.11,33三、算法设计题1.对于任意非负整数n,计算阶乘函数F(n) = n!的值。

因为当n ≥ 1时,n!= 1×2×3×……×(n-1)×n = (n-1)!×n。

并且根据定义,0!= 1,所以可以使用下面的递归算法计算n!:F(n) = F(n-1) × n。

请编写Java应用程序,由键盘输入n的值,在屏幕上输出计算的n!的结果。

import java.io.*;public class FN{static long f(int n){long r = 1;if(n != 0)r = n * f(n-1);return r;}public static void main(String args[]) throws IOException{byte[] buf = new byte[10];System.out.println("请输入一个整数:");System.in.read(buf);String str=new String(buf);int n=Integer.parseInt(str.trim());long result = f(n);System.out.println(n + "!=" + result);}}2、用贪心法求下图的最小生成树3、马步问题:在n*n的方棋盘中,马只能走“日”字。

马从初始位置(x0,y0)出发,把棋盘的每一格都走一次,且只走一次(遍历)。

求出n=5时马的行走路线。

4、某市场营销人员从他所在城市(顶点1)出发,到其他5个城市去做市场调查,如下图19所示。

请设计行走路线。

四、填空题1.算法的复杂性有时间复杂性和空间复杂性之分。

2、程序是算法用某种程序设计语言的具体实现。

3、算法的“确定性”指的是组成算法的每条指令是清晰的,无歧义的。

4.矩阵连乘问题的算法可由动态规划设计实现。

合集下载

复习题2(算法部份)

复习题2(算法部份)
C.一个算法可以有多个开始处,也可以有多个结束处
D.一个算法不能有多个开始处,也不能有多个结束处
答案:B
14.算法中通常需要三种不同的执行流程,即:_____。
A.连续模式、分支模式和循环模式
B.顺序模式、结构模式和循环模式
C.结构模式、分支模式和循环模式
D.顺序模式、分支模式和循环模式
答案:D
15.算法中通常需要三种不同的执行流程,下面说法正确的是:_____。
答案:B
2.计算机是一种按照设计好的程序,快速、自动地进行计算的电子设备,计算机开始计算之前,必须把解决某个问题的程序存贮在计算机的_____中。
A.硬盘B.软盘C.内存D.CPU
答案:C
3.计算机程序由以下两部分即:_____组成。
A.执行部分和数据部分
B.数据部分和程序部分
C.指令部分和数据部分
第1章计算机和算法
1.使用计算机解题的步骤,以下描述正确的是:_____。
A.正确理解题意→设计正确算法→寻找解题方法→编写程序→调试运行
B.正确理解题意→寻找解题方法→设计正确算法→编写程序→调试运行
C.正确理解题意→寻找解题方法→设计正确算法→调试运行→编写程序
D.正确理解题意→寻找解题方法→设计正确算法→编写程序→调试运行
答案:B
10.关于算法的确定性特征,以下不符合算法确定性的是:_____。
A.D←(B * B–4 * A * C)
B.S←(L * H) / 10
C.输入:X
D.输出:L /正整数
答案:D
11.可以用多种不同的方法来描述一个算法,算法的描述可以用:_____。
A.流程图、分支和循环
B.顺序、流程图和自然语言

算法(复习题)1

算法(复习题)1

平均情况:设待查找的元素在数组中的概率为P,不在数组中的概率为1-P,若出现在数组中每个位置的概率是均等的为p/nT(n)=P1D1+P2D2+...+PiDi+(1-P)Dn+1=p/2+n(1-p/2)1.叙述分治算法和动态规划算法的基本思想,并比较两种算法的异同。

答:分治法将待求解的问题划分成K个较小规模的子问题,对这K个子问题分别求解,再将子问题的解合并为一个更大规模的问题的解,自底向上逐步求出原问题的解. 动态规划将待求解的问题分解成若干的子问题,自底向上地通过求解子问题的解得到原问题的解。

动态规划将每个子问题只求解一次并将其解保存在一个表格中,当需要再次求解此子问题时,只是简单的通过查表过的该子问题的解,避免了大量的重复计算.异同:分治法求解的问题分解后的子问题都是独立的,而使用动态规划求解的问题分解后得到的子问题往往不是相互独立的。

分治法是自顶向下用递归的方法解决问题,而动态规划则是自底向上非递归解决问题。

1.简述分治算法求解过程的三个阶段。

答:(1)划分:既然是分治,当然需要把规模为n的原问题划分为k个规模较小的子问题,并尽量使这k个子问题的规模大致相同。

(2)求解子问题:各子问题的解法与原问题的解法通常是相同的,可以用递归的方法求解各个子问题,有时递归处理也可以用循环来实现。

(3)合并:把各个子问题的解合并起来,合并的代价因情况不同有很大差异,分治算法的有效性很大程度上依赖于合并的实现。

2.叙述分治法的基本思想,并分析分治法与减治法二者的区别。

答:分治法将待求解的问题划分成K个较小规模的子问题,对这K个子问题分别求解,再将子问题的解合并为一个更大规模的问题的解,自底向上逐步求出原问题的解.区别:分治法是把一个大问题划分成若干个子问题,分别求解各个子问题,然后把子问题的解进行合并并得到原问题的解。

减治法同样是把一个大问题划分成若干个子问题,但是这些子问题不需要分别求解,只需求解其中的一个子问题,因而也无需对子问题的解进行合并。

算法复习题

算法复习题

算法复习试题一、名词解释:1、算法:就是一组有穷的规则,它规定了解决某一特定类型问题的一系列运算。

2、贪心算法:能够得到某种量度意义下的最优解的分级处理方法称为贪心算法。

3、分治法:分治法的求解思想就是把整个问题分成若干个小问题后分的治之4、递归过程:一个递归过程的执行类似于多个子程序的嵌套调用,递归过程是自己调用自己本身代码。

递归算法的特点:思路清晰,算法的描述简洁且易理解。

5、集合:在研究某一类对象时,可把这类对象的整体称为集合。

6、生成树:设G=(V,E)是一个无向连通图。

如果G的生成子图T=(V,E')是一棵树,则称T是G的一棵生成树。

7、算法具有以下5个属性:有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。

确定性:算法中每一条指令必须有确切的含义。

不存在二义性。

只有一个入口和一个出口可行性:就是算法描述的操作是可以通过已经实现的基本运算执行有限次来实现的。

输入:一个算法有零个或多个输入,这些输入取自于某个特定对象的集合。

输出:一个算法有一个或多个输出,这些输出同输入有着某些特定关系的量。

8、迭代法:称辗转法,是一种不断用变量的旧值递推出新值的解决问题的方法。

9、贪婪法: 是一种不追求最优解,只希望得到较为满意解的方法。

贪婪法不要回溯10、动态规划:是一种将问题实例分解为更小的、相似的子问题,并存储子问题的解而避免计算重复的子问题,以解决最优化问题的算法策略。

11、分支限界法:是一种用于求解组合优化问题的排除非解的搜索算法。

12、树:树是一个或多个结点的有限集合。

12、二元树:它是结点的有限集合,它或者为空,或者由一个根和两棵树(左子树和右子树)的不相交的二元树所组成。

13、二分检索树:T是一棵二元树,它或者为空,或者其每个结点含有一个可比较大小的数据元素。

14、图:图是数据结构,一个图G是由称之为结点V和边E的两个集合组成的15、最优解:使目标函数取极值(极大值或极小值)的可行解。

算法期末复习题2

算法期末复习题2

填空题:1.一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性:确定性有穷性可行性 0个或多个输入一个或多个输出2.算法的复杂性有时间复杂性和空间复杂性之分,衡量一个算法好坏的标准是时间复杂度高低。

3.某一问题可用动态规划算法求解的显著特征是该问题具有最优子结构性质。

5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含一个(最优)解6.动态规划算法的基本思想是将待求解问题分解成若干子问题_,先求解子问题,然后从这些子问题的解得到原问题的解。

7.以深度优先方式系统搜索问题解的算法称为回溯法。

8.0-1背包问题的回溯算法所需的计算时间为o(n*2n),用动态规划算法所需的计算时间为o(min{nc,2n})。

9.动态规划算法的两个基本要素是最优子结构和重叠子问题。

10.二分搜索算法是利用动态规划法实现的算法。

11.一个算法复杂性的高低体现在计算机运行该算法所需的时间和存储器资源上,因此算法的复杂性有时间复杂性和空间复杂性之分。

12.出自于“平衡子问题”的思想,通常分治法在分割原问题,形成若干子问题时,这些子问题的规模都大致相同。

13.动态规划算法有一个变形方法备忘录方法。

这种方法不同于动态规划算法“自底向上”的填充方向,而是“自顶向下”的递归方向,为每个解过的子问题建立了备忘录以备需要时查看,同样也可避免相同子问题的重复求解。

14、这种不断回头寻找目标的方法称为回溯法。

15、直接或间接地调用自身的算法称为递归算法。

16、 记号在算法复杂性的表示法中表示渐进确界或紧致界。

17、由分治法产生的子问题往往是原问题的较小模式,这就为使用递归技术提供了方便。

18、建立计算模型的目的是为了使问题的计算复杂性分析有一个共同的客观尺度。

19、下列各步骤的先后顺序是②③④①。

①调试程序②分析问题③设计算法④编写程序。

20、最优子结构性质的含义是问题的最优解包含其子问题的最优解。

算法设计与分析期末复习题

算法设计与分析期末复习题

算法设计与分析期末考试复习题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)优先队列式分支限界法:按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点。

算法分析与设计复习题及参考答案

《算法分析与设计》课程复习资料一、名词解释:1.算法2.程序3.递归函数4.子问题的重叠性质5.队列式分支限界法6.多机调度问题7.最小生成树 二、简答题:1.备忘录方法和动态规划算法相比有何异同?简述之。

2.简述回溯法解题的主要步骤。

3.简述动态规划算法求解的基本要素。

4.简述回溯法的基本思想。

5.简要分析在递归算法中消除递归调用,将递归算法转化为非递归算法的方法。

6.简要分析分支限界法与回溯法的异同。

7.简述算法复杂性的概念,算法复杂性度量主要指哪两个方面? 8.贪心算法求解的问题主要具有哪些性质?简述之。

9.分治法的基本思想是什么?合并排序的基本思想是什么?请分别简述之。

10.简述分析贪心算法与动态规划算法的异同。

三、算法编写及算法应用分析题:1.已知有3个物品:(w1,w2,w3)=(12,10,6),(p1,p2,p3)=(15,13,10),背包的容积M=20,根据0-1背包动态规划的递推式求出最优解。

2.按要求完成以下关于排序和查找的问题。

①对数组A={15,29,135,18,32,1,27,25,5},用快速排序方法将其排成递减序。

②请描述递减数组进行二分搜索的基本思想,并给出非递归算法。

③给出上述算法的递归算法。

④使用上述算法对①所得到的结果搜索如下元素,并给出搜索过程:18,31,135。

3.已知1()*()i i k k ij r r A a +=,k =1,2,3,4,5,6,r 1=5,r 2=10,r 3=3,r 4=12,r 5=5,r 6=50,r 7=6,求矩阵链积A 1×A 2×A 3×A 4×A 5×A 6的最佳求积顺序(要求给出计算步骤)。

4.根据分枝限界算法基本过程,求解0-1背包问题。

已知n=3,M=20,(w1,w2,w3)=(12,10,6),(p1,p2,p3)=(15,13,10)。

算法分析复习题

算法分析复习题⼀、单项选择题:1、算法的五⼤特征是确定性、有穷性、输⼊、输出和可⾏性。

其输⼊⾄少是( A )个。

A、0B、1C、n D、-12、⼤整数的乘法是利⽤的算法( C )。

A、贪⼼法B、动态规划法C、分治策略D、回溯法3、采⽤贪⼼算法的最优装载问题的主要计算量在于将集装箱依其重量从⼩到⼤排序,故算法的时间复杂度为( B )。

A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)4、⼀个问题可⽤动态规划算法或贪⼼算法求解的关键特征是问题的( B )。

A、重叠⼦问题B、最优⼦结构性质C、贪⼼选择性质D、定义最优解5、设⼀个算法的输⼊规模为n,Dn是所有输⼊的集合,任⼀输⼊I∈Dn,P(I)是I出现的概率,有=1,T(I)是算法在输⼊I下所执⾏的基本语句次数,则该算法的平均执⾏时间为(D)。

A、B、C、D、6、把递归算法转化为⾮递归算法有如下两种基本⽅法:(1)直接⽤循环结构的算法替代递归算法。

(2)⽤( A )模拟系统的运⾏过程,通过分析只保存必须保存的信息,从⽽⽤⾮递归算法替代递归算法。

A、栈B、队列C、顺序表D、链表7、算法分析中,记号表⽰(A)。

A、渐进下界B、渐进上界C、⾮紧上界D、紧渐进界9、贪⼼算法与动态规划算法的主要区别是(B )。

A、最优⼦结构B、贪⼼选择性质C、构造最优解D、定义最优解10、回溯法在问题的解空间树中,按(D)策略,从根结点出发搜索解空间树。

A、⼴度优先B、活结点优先C、扩展结点优先D、深度优先11. 回溯法的问题的解空间树是(B),并不需要在算法运⾏时构造⼀棵真正的树结构,然后再在该解空间树中搜索问题的解,⽽是只存储从根结点到当前结点的路径。

A、顺序⽅式的⼆叉树B、虚拟的树C、满⼆叉树D、完全⼆叉树12. 应⽤回溯法求解问题时,⾸先应该明确问题的解空间。

解空间中满⾜约束条件的决策序列称为(C)。

A、最优解B、局部最优解C、可⾏解D、最优⼦序列解13. ⼀个问题的最优解包含其⼦问题的最优解,则称此问题具有(D)性质。

算法复习题(精炼版)

填空题动态规划算法的基本要素为:最优子结构性质与重叠子问题性质1)算法分析中,记号O表示渐进上界,记号Ω表示渐进下界,记号Θ表示紧渐进界。

2)回溯法在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。

3)分支限界法在问题的解空间树中,按广度优先策略,从根结点出发搜索解空间树。

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

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

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

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

4)二分搜索算法是利用分治策略实现的算法。

5)衡量一个算法好坏的标准是时间复杂度低6)最长公共子序列算法利用的算法是动态规划法7)Strassen矩阵乘法是利用分治策略实现的算法8)回溯法搜索状态空间树是按照深度优先遍历的顺序。

9)算法中通常以自底向下的方式求解最优解的是动态规划法10)背包问题的贪心算法所需的计算时间为O(nlogn)11)0-1背包问题的回溯算法所需的计算时间为O(n2n)12)用动态规划算法解决最大字段和问题,其时间复杂性为n13)一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性:_有穷性,确定性,可行性,输入,输出。

1.算法的复杂性有时间复杂性和空间复杂性之分。

2、程序是算法用某种程序设计语言的具体实现。

3、算法的“确定性”指的是组成算法的每条指令是清晰的,无歧义的。

4.矩阵连乘问题的算法可由动态规划设计实现。

6、算法是指解决问题的一种方法或一个过程。

7、从分治法的一般设计模式可以看出,用它设计出的程序一般是递归算法。

8、问题的最优子结构性质是该问题可用动态规划算法或贪心算法求解的关键特征。

9、以深度优先方式系统搜索问题解的算法称为回溯法。

10、数值概率算法常用于数值问题的求解。

算法分析复习题目及答案16-12-10

一。

选择题1、二分搜索算法是利用( A )实现的算法。

A、分治策略B、动态规划法C、贪心法D、回溯法2、下列不是动态规划算法基本步骤的是( D )。

A、找出最优解的性质B、构造最优解C、算出最优解D、定义最优解3、最大效益优先是( A )的一搜索方式。

A、分支界限法B、动态规划法C、贪心法D、回溯法5. 回溯法解旅行售货员问题时的解空间树是()。

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、回溯法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 )。

A、分治法B、动态规划法C、贪心法D、回溯法18.下面是贪心算法的基本要素的是( C )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档