5.《算法设计与分析》试题库
《算法设计与分析》复习题
填空1.直接或间接地调用自身的算法称为 递归 。
2.算法的复杂性是 算法效率 的度量,是评价算法优劣的重要依据。
3.以广度优先或以最小耗费方式搜索问题解的算法称为 分支限界法。
4.回溯法解题的显著特点是在搜索过程中动态产生问题的解空间。
在任何时刻,算法只保存从根结点到当前扩展结点的路径。
如果解空间树中从根结点到叶结点的最长路径的长度为h(n),则回溯法所需的计算空间通常为 o(h(n)) 。
5.人们通常将问题的解决方案分为两大类:一类是可以通过执行若干个步骤就能得出问题6.算法就是一组有穷的 规则 ,它们规定了解决某一特定类型问题的 一系列运算 。
7.在进行问题的计算复杂性分析之前,首先必须建立求解问题所用的计算模型。
3个基本计算模型是 随机存取机、 随机存取存储程序机 、 图灵机 。
8.快速排序算法的性能取决于 划分的对称性 。
9.计算机的资源最重要的是 内存 和 运算 资源。
因而,算法的复杂性有时间 和 空间 之分。
10.贪心算法总是做出在当前看来 最优 的选择。
也就是说贪心算法并不从整体最优考虑,它所做出的选择只是在某种意义上的 局部最优解 。
11.许多可以用贪心算法求解的问题一般具有2个重要的性质: 最优子结构的 性质和 贪心选择的 性质。
12.常见的两种分支限界法为 队列式 和 优先队列式 。
13.解决0/1背包问题可以使用动态规划、回溯法和分支限界法,其中需要排序的是 回溯法 ,不需要排序的是 动态规划和分支限界法 。
14.f ( n ) = 6 × 2n + n 2,f(n)的渐进性态f ( n ) = O ( 2^n )。
15.对于含有n 个元素的排列树问题,最好情况下计算时间复杂性为 ,最坏情况下计算时间复杂性为 n! 。
16.在忽略常数因子的情况下,O 、Ω和Θ三个符号中, Θ 提供了算法运行时间的一个上界。
17.回溯法的求解过程,即在问题的解空间树中,按 深度优先 策略从根结点出发搜索解空间树。
华中师范大学网络教育学院《算法设计与分析》练习题库及答案
《算法设计与分析》练习题库及答案(加粗红色字体为2013下新增题目) 一、概念题:请解释下列术语。
1.数据类型2.队列3.多项式复杂度4.满二叉树5. NP-难度6.算法7. SIMD(并行算法)8.连通图9.抽象数据类型10.指数复杂度11.递归12.完全二叉树13.状态空间树14. NP-完全的15.算法与过程16.有向图与无向图17.树18. P类问题19. 确定的算法20. NP问题21. 最小生成树22. 动态规划23. 数据结构24. 排序二、填空题1. 简单递选分类过程中所需进行移动存储的操作次数较少,其最大值为___________。
2. 一组有序的n个数,采用逐个查找算法查找一给定的数是否出现在序列中,其算法复杂性为_____________。
3. 动态规划实际上是研究一类__________________的算法,其应用非常广泛。
4. BFS算法的中文名称是______________________算法。
5. 一棵树中定义为该树的高度或深度。
6. 二分检索树要求树中所有结点中的元素满足。
7. 比较树的结点由称为和的两种结点组成。
8. 外结点用一个结点表示,在二分检索算法中它表示不成功检索的一种情况。
9. 由根到所有内部结点的距离之和称为 ;由根到所有外部结点的距离之和称为 .10.max和min被看成是两个内部函数,它们分别求取两个元素的大者和小者,并认为每次调用其中的一个函数都只需作次元素比较。
11.如果用分治策略来设计分类算法,则可使最坏情况时间变为o(n logn)。
这样的算法称为。
12.贪心算法可行的第一个基本要素是。
13. 当一个问题的最优解包含着它的子问题的最优解时,称此问题具有性质。
14. 二路归并模式可以用树来表示。
15. kruskal算法对于每一个无向连通图g产生一棵。
16.因为如果有环,则可去掉这个环且不增加这条路径的长度(不含有负长度的环)。
如果k是这条最短路径上的一个中间结点,那么—由i到k和由k 到j的这两条子路径应分为别是由i到k和.由k到j的最短路径。
算法设计与分析试题及答案
1. 按分治策略求解棋盘覆盖问题时,对于如图所示的24×24的特殊棋盘,共需要多少个L 型骨牌;并在棋盘上填写L 型骨牌的覆盖情况。
2. 假设有7个物品,给出重量和价值。
若这些物品均不能被分割,且背包容量M =140,使用回溯方法求解此0-1背包问题。
请画出状态空间搜索树。
3. 假设有7个物品,它们的重量和价值如下表所示。
若这些物品均可以被分割,且背包容量M=140,使用贪心算法求解此背包问题。
请写出求解策略和求解过程。
W (35,30,50,60,40,10,25)p (10,40,30,50,35,40,30)4. 在给出的电路板中,阴影部分是已作了封锁标记的方格,请按照队列式分支限界法在图中确定a 到b 的最短布线方案,要求布线时只能沿直线或直角进行,在图中标出求得最优解时各方格情况。
5. 画出字符表的哈夫曼编码对应的二叉树。
6. 已知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=8,r 5=5,r 6=20,r 7=6,求矩阵链积A 1×A 2×A 3×A 4×A 5×A 6的最佳求积顺序。
7. 给出城市网络图,售货员要从城市1出发,经过所有城市回到城市1,画出该问题的解空间树,描述出用优先队列式分支限界法求解时的搜索情况。
表示出优先队列、当前扩展结点等的变化情况。
8. 依据优先队列式分支限界法,求从s 点到t 点的单源最短路径,画出求得最优解的解空间树。
一、假设有7个物品,它们的重量和价值如下表所示。
若这些物品均不能被分割,且背包容量M=150,使用回溯方法求解此背包问题。
请写出状态空间搜索树(20分)。
答:按照单位效益从大到小依次排列这7个物品为:FBGDECA 。
将它们的序号分别记为1~7。
则可生产如下的状态空间搜索树。
其中各个节点处的限界函数值通过如下方式求得:【排序1分】5x =6x =7x =17分,每个节点1分】a .1501154040305035190.62540-++++⨯=7(1,1,1,1,,0,0)8b. 1501154040305030177.560-++++⨯=7(1,1,1,1,0,,0)12c .4040305010170++++=(1,1,1,1,0,0,1)d. 1501054040303530167.560-++++⨯=3(1,1,1,0,1,,0)4e. 150130404050353017560-++++⨯=1(1,1,0,1,1,,0)3f. 1501304040503510170.7135-++++⨯=4(1,1,0,1,1,0,)7g. 40405030160+++=(1,1,0,1,0,1,0)h. 1501404040353010146.8535-++++⨯=2(1,1,0,0,1,1,)7i.1501254030503530167.560-++++⨯=5(1,0,1,1,1,,0)12 j. 1501454030503530157.560-++++⨯=1(0,1,1,1,1,,0)12在Q 1处获得该问题的最优解为(1,1,1,1,0,0,1),背包效益为170。
算法设计与分析期末试题汇总
A卷一、选择题1.二分搜索算法是利用(A )实现的算法。
A、分治策略B、动态规划法C、贪心法D、回溯法2. 回溯法解旅行售货员问题时的解空间树是( A )。
A、子集树B、排列树C、深度优先生成树D、广度优先生成树3.下列算法中通常以自底向上的方式求解最优解的是(B )。
A、备忘录法B、动态规划法C、贪心法D、回溯法4.下面不是分支界限法搜索方式的是( D )。
A、广度优先B、最小耗费优先C、最大效益优先D、深度优先5.采用贪心算法的最优装载问题的主要计算量在于将集装箱依其重量从小到大排序,故算法的时间复杂度为 ( B ) 。
A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)6.分支限界法解最大团问题时,活结点表的组织形式是( B)。
A、最小堆B、最大堆C、栈D、数组7、下面问题(B )不能使用贪心法解决。
A 单源最短路径问题B N皇后问题C 最小花费生成树问题D 背包问题8.下列算法中不能解决0/1背包问题的是(A )A 贪心法B 动态规划C 回溯法D 分支限界法9.背包问题的贪心算法所需的计算时间为( B )A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)10.背包问题的贪心算法所需的计算时间为(B )。
A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)二、填空题1.算法的复杂性有复杂性和复杂性之分。
2.算法是由若干条指令组成的有穷序列,且要满足输入、、确定性和四条性质。
其中算法的“确定性”指的是组成算法的每条是清晰的,无歧义的。
3.解决0/1背包问题可以使用动态规划、回溯法和分支限界法,其中不需要排序的是,需要排序的是,。
4.动态规划算法的两个基本要素是. 性质和性质。
5.回溯法是一种既带有又带有的搜索算法;分支限界法是一种既带有又带有的搜索算法。
6. 用回溯法解题的一个显著特征是在搜索过程中动态产生问题的解空间。
在任何时刻,算法只保存从根结点到当前扩展结点的路径。
算法设计与分析期末试题_考试版
逐个将结果进行合并。
合并排序最大的优点是它的时间复杂度为O(nlgn),这个是我们之前的选择排序和插入排序所达不到
的。他还是一种稳定性排序,也就是相等的元素在序列中的相对位置在排序前后不会发生变化。他的
唯一缺点是,需要利用额外的N的空间来进行排序。
合并排序依赖于合并操作,即将两个已经排序的序列合并成一个序列,具体的过程如下:
确定性:
可行性:
输入:
输出:
算法设计的质量指标:
正确性:算法应满足具体问题的需求;
可读性:算法应该好读,以有利于读者对程序的理解;
健壮性:算法应具有容错处理,当输入为非法数据时,算法应对
其作出反应,而不是产生莫名其妙的输出结果。
效率与存储量需求:效率指的是算法执行的时间;存储量需求指
算法执行过程中所需要的最大存储空间。一般这两者与问题的规模有
第三步:合并(Merge)
由于对分解出的两个子序列的排序是就地进行的,所以在L[p..q-1]和L[q+1..r]都排好序
后不需要执行任何计算L[p..r]就已排好序,即自然合并。
这个解决流程是符合分治法的基本步骤的。
贪心算法
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是
合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治
法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多
次。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,
这样就可以避免大量的重复计算,节省时间。我们可以用一个表来记录所有已解
的子问题的答案。不管该子问题以后是否被用到,只要它被计算过,就将其结果
速排序算法对该数组进行排序。
算法设计与分析试卷试题(A)(附答案)
chengcheng算法分析考试试卷(A卷)课程名称算法分析编号题号一二三四总分得分评阅人一、填空题(每小题3分,共30分)1、一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
2、这种不断回头寻找目标的方法称为回溯法。
3、直接或间接地调用自身的算法称为递归算法。
4、 记号在算法复杂性的表示法中表示紧致界。
5、由分治法产生的子问题往往是原问题较小模式,这就为使用递归技术提供了方便。
6、建立计算模型的目的是为了使问题的计算复杂性分析有一个共同的客观尺度。
7、下列各步骤的先后顺序是②③④①。
①调试程序②分析问题③设计算法④编写程序。
8、最优子结构性质的含义是问题最优解包含其子问题最优解。
9、贪心算法从初始阶段开始,每一个阶段总是作一个使局部最优的贪心选择。
10、拉斯维加斯算法找到的解一定是正确的。
二、选择题(每小题2分,共20分)1、哈夫曼编码可利用( C )算法实现。
A、分治策略B、动态规划法C、贪心法D、回溯法2、下列不是基本计算模型的是( B )。
A、RAMB、ROMC、RASPD、TM3、下列算法中通常以自顶向下的方式求解最优解的是( C)。
A、分治法B、动态规划法C、贪心法D、回溯法chengcheng 4、在对问题的解空间树进行搜索的方法中,一个活结点有多次机会成为活结点的是( A )A、回溯法B、分支限界法C、回溯法和分支限界法D、动态规划5、秦始皇吞并六国使用的远交近攻,逐个击破的连横策略采用了以下哪种算法思想? BA、递归;B、分治;C、迭代;D、模拟。
6、FIFO是( A )的一搜索方式。
A、分支界限法B、动态规划法C、贪心法D、回溯法7、投点法是( B )的一种。
A、分支界限算法B、概率算法C、贪心算法D、回溯算法8、若线性规划问题存在最优解,它一定不在( C )A.可行域的某个顶点上 B.可行域的某条边上 C.可行域内部 D.以上都不对9、在一般输入数据的程序里,输入多多少少会影响到算法的计算复杂度,为了消除这种影响可用( B )对输入进行预处理。
(完整版)算法设计与分析考试题及答案,推荐文档
____________________________________。 4.若序列 X={B,C,A,D,B,C,D},Y={A,C,B,A,B,D,C,D},请给出序列
X 和 Y 的一个最长公共子序列_____________________________。 5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至
和
之分。
5、 f(n)= 6×2n+n2,f(n)的渐进性态 f(n)= O(
)
6、 贪心算法总是做出在当前看来
的选择。也就是说贪心算法并不从整体最优考
虑,它所做出的选择只是在某种意义上的
。
7、 许多可以用贪心算法求解的问题一般具有 2 个重要的性质:
性质和
性质。
二、简答题(本题 25 分,每小题 5 分)
五、算法理解题(本题 5 分) 设有 n=2k 个运动员要进行循环赛,
现设计一个满足以下要求的比赛日程表:
①每个选手必须与其他 n-1 名选手比赛各一次; ②每个选手一天至多只能赛一次;
③循环赛要在最短时间内完成。
我去(人1)如也果 就n=2k有,循人环赛!最少为需要U进R行扼几天腕; 入站内信不存在向你偶同意调剖沙 (2)当 n=23=8 时,请画出循环赛日程表。
六、算法设计题(本题 15 分) 分别用贪心算法、动态规划法、回溯法设计 0-1 背包问题。要求:说明所使用的算法
策略;写出算法实现的主要步骤;分析算法的时间。 七、算法设计题(本题 10 分)
建议收藏下载本文,以便随时学习! 通过键盘输入一个高精度的正整数 n(n 的有效位数≤240),去掉其中任意 s 个数字后, 剩下的数字按原左右次序将组成一个新的正整数。编程对给定的 n 和 s,寻找一种方案, 使得剩下的数字组成的新数最小。 【样例输入】 178543 S=4 【样例输出】 13
算法设计与分析(试题B卷)
《算法设计与分析》答卷说明: 1、考试方式闭卷2、满分100分题号一二三四五六七总分总分人分数得分评卷人一、单项选择题(每小题2分,共20分)1、下面关于NP问题说法正确的是()。
A 、NP问题都是不可能解决的问题B 、P类问题包含在NP类问题中C 、NP完全问题是P类问题的子集D 、NP类问题包含在P类问题中2、能采用贪心算法求最优解的问题,一般具有的重要性质为:()A、最优子结构性质与贪心选择性质B、重叠子问题性质与贪心选择性质C、最优子结构性质与重叠子问题性质D、预排序与递归调用3、实现合并排序利用的算法是()。
A、分治策略B、动态规划法C、贪心法D、回溯法4、以下不可以使用分治法求解的是()。
A、棋盘覆盖问题B、选择问题C、归并排序D、0/1背包问题5、记号O的定义正确的是()。
A、O(g(n)) = { f(n) | 存在正常数c和n0使得对所有n≥n0有:0≤ f(n) ≤cg(n) };B、O(g(n)) = { f(n) | 存在正常数c和n0使得对所有n≥n0有:0≤ cg(n) ≤f(n) };C、O(g(n)) = { f(n) | 对于任何正常数c>0,存在正数和n>0使得对所有n≥n0有:0 ≤f(n)<cg(n) };D、O(g(n)) = { f(n) | 对于任何正常数c>0,存在正数和n>0使得对所有n≥n0有:0 ≤cg(n) < f(n) };6、使用分治法求解不需要满足的条件是()。
A、子问题必须是一样的B、子问题不能够重复C、子问题的解可以合并D、原问题和子问题使用相同的方法解7、以下关于渐进记号的性质是正确的有:()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、O(f(n))+O(g(n)) = O(min{f(n),g(n)})D、f(n)O(g(n))g(n)O(f(n))=⇔=8、衡量一个算法好坏的标准是()。
算法设计与分析复习题目及答案.docx
算法设计与分析复习题目及答案.docx一。
选择题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、下列随机算法中运行时有时候成功有时候失败的是( C )A 数值概率算法B 舍伍德算法C 拉斯维加斯算法D 蒙特卡罗算法11.下面不是分支界限法搜索方式的是(DA、广度优先B、最小耗费优先C、最大效益优先12.下列算法常以深度优先方式系统搜索问题解的是(A、备忘录法B、动态规划法C、贪心法13.备忘录方法是那种算法的变形。
( B )A、分治法B、动态规划法C、贪心法14.哈弗曼编码的贪心算法所需的计算时间为(BnB、 O(nlogn )n )A、O( n2 )C、O(215.分支限界法解最大团问题时,活结点表的组织形式是(A、最小堆B、最大堆C、栈组)。
D、深度优先D)。
D、回溯法D、回溯法)。
D、 O( n)B)。
D 、数16.最长公共子序列算法利用的算法是(B)。
A、分支界限法B、动态规划法C、贪心法D、回溯法17.实现棋盘覆盖算法利用的算法是(A)。
算法分析与设计试题及答案
算法分析与设计试题及答案一、选择题1. 下列哪个是属于分治算法的例子?A. 冒泡排序B. 归并排序C. 顺序查找D. 选择排序答案:B2. 在排序算法中,时间复杂度最优的是:A. 冒泡排序B. 插入排序C. 归并排序D. 快速排序答案:C3. 哪个不是动态规划的特点?A. 具有重叠子问题B. 通过递归求解C. 需要保存子问题的解D. 具有最优子结构答案:B4. 在图的广度优先搜索算法中,使用的数据结构是:A. 栈B. 队列C. 数组D. 堆栈答案:B5. 在最小生成树算法中,下列哪个不属于贪心策略?A. Kruskal算法B. Prim算法C. Dijkstra算法D. Prim-Kruskal混合算法答案:C二、简答题1. 请简述分治算法的思想和应用场景。
答案:分治算法的思想是将原问题分解成若干个规模较小且类似的子问题,然后解决子问题,最后将子问题的解合并得到原问题的解。
其应用场景包括排序算法(如归并排序、快速排序)、搜索算法(如二分查找)等。
2. 什么是动态规划算法?请给出一个动态规划算法的示例。
答案:动态规划算法是一种通过将问题分解成子问题并解决子问题来解决复杂问题的方法。
它的特点是具有重叠子问题和最优子结构性质。
以斐波那契数列为例,可以使用动态规划算法求解每一项的值,而不需要重复计算。
3. 图的深度优先搜索和广度优先搜索有什么区别?答案:图的深度优先搜索(Depth First Search,DFS)是一种先访问子节点再访问兄弟节点的遍历算法,通常使用递归或者栈实现。
而广度优先搜索(Breadth First Search,BFS)则是以层次遍历的方式展开搜索,使用队列来实现。
DFS更适合用于搜索路径,BFS则适用于寻找最短路径等。
4. 请简述贪心算法的特点及其应用场景。
答案:贪心算法的特点是每一步都采取当前状态下最优的选择,以期望得到全局最优解。
然而,贪心算法并不一定能求解所有问题的最优解,但对于一些特定问题,贪心算法往往能得到近似最优解。
算法设计和分析试题(卷)与答案解析
湖南科技学院二○ 年 学期期末考试信息与计算科学专业 年级《算法设计与分析》 试题考试类型:开卷 试卷类型:C 卷 考试时量:120 分钟 一、填空题(每小题3 分,共计30 分)1. 用O 、Ω和θ表示函数f 与g 之间的关系______________________________。
()()log log f n n n g n n ==2. 算法的时间复杂性为1,1()8(3/7),2n f n f n n n =⎧=⎨+≥⎩,则算法的时间复杂性的阶为__________________________。
3. 快速排序算法的性能取决于______________________________。
4. 算法是_______________________________________________________。
5. 在对问题的解空间树进行搜索的方法中,一个活结点最多有一次机会成为活结点的是_________________________。
6. 在算法的三种情况下的复杂性中,可操作性最好且最有实际价值的是_____情况下的时间复杂性。
7. 大Ω符号用来描述增长率的下限,这个下限的阶越___________,结果就越有价值。
8. ____________________________是问题能用动态规划算法求解的前提。
9. 贪心选择性质是指________________________________________________________ ____________________________________________________________。
10. 回溯法在问题的解空间树中,按______________策略,从根结点出发搜索解空间树。
二、简答题(每小题10分,共计30分)1. 试述回溯法的基本思想及用回溯法解题的步骤。
2. 有8个作业{1,2,…,8}要在由2台机器M1和M2组成的流水线上完成加工。
算法分析与设计试题完整版
算法分析与设计试题 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】一、选择题(20分)1.最长公共子序列算法利用的算法是(B )。
A、分支界限法B、动态规划法C、贪心法D、回溯法2.实现棋盘覆盖算法利用的算法是(A )。
A、分治法B、动态规划法C、贪心法D、回溯法3.下面是贪心算法的基本要素的是(C )。
A、重叠子问题B、构造最优解C、贪心选择性质D、定义最优解4.回溯法的效率不依赖于下列哪些因素( D )A.满足显约束的值的个数B. 计算约束函数的时间C. 计算限界函数的时间D. 确定解空间的时间5.下面哪种函数是回溯法中为避免无效搜索采取的策略(B )A.递归函数 B.剪枝函数C。
随机数函数 D.搜索函数6.采用最大效益优先搜索方式的算法是(A )。
A、分支界限法B、动态规划法C、贪心法D、回溯法7.贪心算法与动态规划算法的主要区别是(B )。
A、最优子结构B、贪心选择性质C、构造最优解D、定义最优解8. 实现最大子段和利用的算法是(B )。
A、分治策略B、动态规划法C、贪心法D、回溯法9.优先队列式分支限界法选取扩展结点的原则是(C )。
A、先进先出B、后进先出C、结点的优先级D、随机10.下列算法中通常以广度优先方式系统搜索问题解的是(A )。
A、分支限界法B、动态规划法C、贪心法D、回溯法二、填空题(22分每空2分)1.算法是由若干条指令组成的有穷序列,且要满足输入、输出、确定性和有限性四条性质。
2、大整数乘积算法是用分治法来设计的。
3、以广度优先或以最小耗费方式搜索问题解的算法称为分支限界法。
4、舍伍德算法总能求得问题的一个解。
5、贪心选择性质是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。
6.快速排序template<class Type>void QuickSort (Type a[], int p, int r){if (p<r) {int q=Partition(a,p,r);QuickSort (a,p,q-1); 哈密顿环问题的算法可由回溯法设计实现。
5.《算法设计与分析》试题库
《算法分析与设计》试题库(一)一、选择题1.应用Johnson 法则的流水作业调度采用的算法是(D )A. 贪心算法B. 分支限界法C.分治法D. 动态规划算法2.Hanoi 塔问题如下图所示。
现要求将塔座A 上的的所有圆盘移到塔座B 上,并仍按同样顺序叠置。
移动圆盘时遵守Hanoi 塔问题的移动规则。
由此设计出解Hanoi 塔问题的递归算法正确的为:(B )Hanoi 塔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, 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 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); }3. 动态规划算法的基本要素为(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. O(f(n))+O(g(n)) = O(min{f(n),g(n)})D. f(n)O(g(n))g(n)O(f(n))=⇔=6. 能采用贪心算法求最优解的问题,一般具有的重要性质为:(A)A. 最优子结构性质与贪心选择性质B.重叠子问题性质与贪心选择性质C.最优子结构性质与重叠子问题性质D. 预排序与递归调用7. 回溯法在问题的解空间树中,按(D )策略,从根结点出发搜索解空间树。
5.《算法设计与分析》试题库
《算法分析与设计》试题库(一)一、选择题1.应用Johnson 法则的流水作业调度采用的算法是(D )A. 贪心算法B. 分支限界法C.分治法D. 动态规划算法塔问题如下图所示。
现要求将塔座A 上的的所有圆盘移到塔座B 上,并仍按同样顺序叠置。
移动圆盘时遵守Hanoi 塔问题的移动规则。
由此设计出解Hanoi 塔问题的递归算法正确的为:(B )Hanoi 塔A. void hanoi(int n, int A, int C, int B) { if (n > 0) {hanoi(n-1,A,C, B);B. void hanoi(int n, int A, int B, int C) {if (n > 0) {hanoi(n-1, A, C, B);C. void hanoi(int n, int C, int B, int A) {if (n > 0) {hanoi(n-1, A, C, B);3. 动态规划算法的基本要素为(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. O(f(n))+O(g(n)) = O(min{f(n),g(n)}) D. f (n)O(g(n))g(n)O(f (n))=⇔=6. 能采用贪心算法求最优解的问题,一般具有的重要性质为:(A ) A. 最优子结构性质与贪心选择性质 B .重叠子问题性质与贪心选择性质D. void hanoi(int n, int C, int A, int B) {if (n > 0) {hanoi(n-1, A, C, B);C.最优子结构性质与重叠子问题性质D. 预排序与递归调用7. 回溯法在问题的解空间树中,按(D)策略,从根结点出发搜索解空间树。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《算法分析与设计》试题库(一)一、 选择题1.应用Johnson 法则的流水作业调度采用的算法是(D ) A. 贪心算法 B.分支限界法 C.分治法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);2.Hanoi塔问题如下图所示。
现要求将塔座A 上的的所有圆盘移到塔座 B 上,并D.动态规划算法3. 动态规划算法的基本要素为(C)A. 最优子结构性质与贪心选择性质B •重叠子问题性质与贪心选择性质C.最优子结构性质与重叠子问题性质D.预排序与递归调用4. 算法分析中,记号0表示(B),记号0表示(A),记号。
表示(D)A. 渐进下界B. 渐进上界C. 非紧上界D. 紧渐进界E. 非紧下界5. 以下关于渐进记号的性质是正确的有:(A)A. f(n) - P(g(n)),g(n) - 心(h(n))二f(n) - P(h(n))B. f(n) =0(g(n)),g(n) =0(h(n))二h(n) =0(f(n))C. O(f(n ))+0(g( n)) = O(mi n{f(n ),g( n)})D. f(n) =0(g(n)) = g(n) -0(f (n))6•能采用贪心算法求最优解的问题,一般具有的重要性质为:(A)A. 最优子结构性质与贪心选择性质B •重叠子问题性质与贪心选择性质C. 最优子结构性质与重叠子问题性质D. 预排序与递归调用7.回溯法在问题的解空间树中,按(D)策略,从根结点出发搜索解空间树。
A. 广度优先B.活结点优先C.扩展结点优先D.深度优先8.分支限界法在问题的解空间树中,按(A)策略,从根结点出发搜索解空间树A.广度优先B.活结点优先C.扩展结点优先D.深度优先9.程序块(A)是回溯法中遍历排列树的算法框架程序。
A.B.C. void backtrack (int t){if (t>n) output(x);elsefor (int i=0;i<=1;i++) { x[t]=i;if (legal(t)) backtrack(t-1);}}D.10. 回溯法的效率不依赖于以下哪一个因素?(C )A. 产生x[k]的时间;B. 满足显约束的x[k]值的个数;C. 问题的解空间的形式;D. 计算上界函数bound的时间;11. 常见的两种分支限界法为(D)A. 广度优先分支限界法与深度优先分支限界法;B. 队列式(FIFO )分支限界法与堆栈式分支限界法;C. 排列树法与子集树法;D. 队列式(FIFO )分支限界法与优先队列式分支限界法;12. k带图灵机的空间复杂性S(n)是指(B)A. k带图灵机处理所有长度为n的输入时,在某条带上所使用过的最大方格数。
B. k带图灵机处理所有长度为n的输入时,在k条带上所使用过的方格数的总和k带图灵机处理所有长度为n的输入时,在k条带上所使用过的平均方格数。
D. k带图灵机处理所有长度为n的输入时,在某条带上所使用过的最小方格数。
13. NP类语言在图灵机下的定义为(D)A. NP={L|L 是-个能在非多项式时间内被一.台NDTM所接受的语言};B. NP={L|L 是-个能在多项式时间内被一厶NDTM所接受的语言};C. NP={L|L 是-个能在多项式时间内被一厶DTM所接受的语言};D. NP={L|L 是-个能在多项式时间内被一厶NDTM所接受的语言}; 14.记号O的定义正确的是(A)cg(n) };B. O(g(n)) = { f(n) |存在正常数c和nO使得对所有n _ n o有:0 _ cg(n) 一f(n) };C. O(g(n)) = { f(n) |对于任何正常数c>0,存在正数和n o >0使得对所有n_n o 有:0 ^f(n)<cg(n) };D. O(g(n)) = { f(n) |对于任何正常数c>0,存在正数和n0 >0使得对所有n_n°有:0-cg(n) < f(n) };15.记号i ■■的定义正确的是(B)。
A. O(g(n)) = { f(n) |存在正常数c和n0使得对所有n — n0有:0乞f(n)乞cg(n) };B. 0(g(n)) = { f(n) |存在正常数c和nO使得对所有n_n o有:0乞cg(n) <A. 0(g( n)) = { f(n) | 存在正常数c和nO使得对所有n丄n o有:0乞f(n)乞f(n) };C. (g(n)) = { f(n) |对于任何正常数c>0,存在正数和n o >0使得对所有n 一n o有:0 zf(n)<cg(n) };D. (g(n)) = { f(n) |对于任何正常数c>0,存在正数和n0 >0使得对所有n_n°有:0 _cg(n) < f(n) };二、填空题i. 下面程序段的所需要的计算时间为( o(n))。
2. 有11个待安排的活动,它们具有下表所示的开始时间与结束时间,女口果以贪心算法求解这些活动的最优安排(即为活动安排问题:在所给的活动集合中选出最大的相容活动子集合),得到的最大相容活动子集合为活动({1,4,8,11})。
3. 所谓贪心选择性质是指(所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到)。
4. 所谓最优子结构性质是指(问题的最优解包含了其子问题的最优解)。
5. 回溯法是指(具有限界函数的深度优先生成法)。
6. 用回溯法解题的一个显著特征是在搜索过程中动态产生问题的解空间。
在任何时刻,算法只保存从根结点到当前扩展结点的路径。
如果解空间树中从根结点到叶结点的最长路径的长度为h(n),则回溯法所需的计算空间通常为(0(h(n)))°7.回溯法的算法框架按照问题的解空间一般分为(子集树)算法框架与(排列树)算法框架。
8. 用回溯法解0/1背包问题时,该问题的解空间结构为(子集树)结构。
9. 用回溯法解批处理作业调度问题时,该问题的解空间结构为(排列树)结10. 用回溯法解0/1背包问题时,计算结点的上界的函数如下所示,请在空格中填入合适的内容:11. 用回溯法解布线问题时,求最优解的主要程序段如下。
如果布线区域划分为n m的方格阵列,扩展每个结点需0(1)的时间,L为最短布线路径的长度,则算法共耗时(0(m n)),构造相应的最短距离需要(0(L))时间。
12. 用回溯法解图的m着色问题时,使用下面的函数0K检查当前扩展结点的每一个儿子所相应的颜色的可用性,则需耗时(渐进时间上限) (0 (mn))。
13•旅行售货员问题的解空间树是(排列树)。
解答题1. 机器调度问题。
问题描述:现在有n件任务和无限多台的机器,任务可以在机器上得到处理。
每件任务的开始时间为S i,完成时间为f i,S<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),其中,b、c是常数,[ f (0) = cng(n)是n的某一个函数。
贝U f(n)的非递归表达式为:f (n) =cb n•b n_1g(i)。
i=1现有Hanoi塔问题的递归方程为:h(n) _2h(n _1) 1,求h(n)的非递归表I h(1)=1达式。
解:禾U用给出的关系式,此时有:b=2, c=1, g(n)=1,从n递推到1,有:n 4h(n)二cb n,…二b n44g(i)id:-2n J2n,... 22 2 1=2n -13. 单源最短路径的求解。
问题的描述:给定带权有向图(如下图所示) G =(V,E),其中每条边的权是非负实数。
另外,还给定V中的一个顶点,称为源。
现在要计算从源到所有其它各顶点的最短路长度。
这里路的长度是指路上各边权之和。
这个问题通常称为单源最短路径问题。
的装载方案可将这n 个集装箱装上这2艘轮船。
如果有,找出一种装载方案。
解: void backtrack (int i){//搜索第i 层结点if (i > n) //到达叶结点更新最优解 bestx,bestw;return;r -= w[i];if (cw + w[i] <= c) {// 搜索左子树x[i] = 1;cw += w[i]; backtrack (i + 1);解法:现采用计算从源顶点1到其它顶点间最短路径。
请将此10 过程填入下表560Z Wj g 弋其中集装箱i 的重量为wi ,且7。
装载问题要求确定是否有一个合理cw -= w[i];if (cw + r > bestw) {x[i] = 0; //搜索右子树backtrack (i + 1); }r += w[i];}5.用分支限界法解装载问题时,对算法进行了一些改进,下面的程序段给出了改进部分;试说明斜线部分完成什么功能,以及这样做的原因,即采用这样的方式,算法在执行上有什么不同解答:斜线标识的部分完成的功能为:提前更新bestw值;这样做可以尽早的进行对右子树的剪枝。
具体为:算法Maxloading初始时将bestw设置为0,直到搜索到第一个叶结点时才更新bestw。
因此在算法搜索到第一个叶子结点之前,总有bestw=0 , r>0故Ew+r>bestw总是成立。
也就是说,此时右子树测试不起作用为了使上述右子树测试尽早生效,应提早更新bestw。
又知算法最终找到的最优值是所求问题的子集树中所有可行结点相应重量的最大值。
而结点所相应得重量仅在搜索进入左子树是增加,因此,可以在算法每一次进入左子树时更新bestw 的值。
7. 最长公共子序列问题:给定2个序列X={x1,x2,…,xm}和Y={y1,y2,…,yn},找出X 和Y的最长公共子序列。
由最长公共子序列问题的最优子结构性质建立子问题最优值的递归关系。
用c[i][j]记录序列Xi和Yj的最长公共子序列的长度。