算法分析与设计试题

合集下载

算法分析与设计试卷

算法分析与设计试卷

《算法分析与设计》试卷(A)(时间90分钟满分100分)一、填空题(30分,每题2分)。

1.最长公共子序列算法利用的算法是( B )。

A、分支界限法B、动态规划法C、贪心法D、回溯法2.在对问题的解空间树进行搜索的方法中,一个活结点最多有一次机会成为活结点的是( B ).A.回溯法B.分支限界法C.回溯法和分支限界法D.回溯法求解子集树问题3.实现最大子段和利用的算法是( B )。

A、分治策略B、动态规划法C、贪心法D、回溯法4..广度优先是( A )的一搜索方式。

A、分支界限法B、动态规划法C、贪心法D、回溯法5.衡量一个算法好坏的标准是( C )。

A 运行速度快B 占用空间少C 时间复杂度低D 代码短6.Strassen矩阵乘法是利用( A)实现的算法。

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

A 子问题必须是一样的B 子问题不能够重复C 子问题的解可以合并D 原问题和子问题使用相同的方法解8.用动态规划算法解决最大字段和问题,其时间复杂性为( B ).A.lognB.nC.n2D.nlogn9.解决活动安排问题,最好用( B )算法A.分治B.贪心C.动态规划D.穷举10.下面哪种函数是回溯法中为避免无效搜索采取的策略( B )A.递归函数 B.剪枝函数C。

随机数函数 D.搜索函数11. 从活结点表中选择下一个扩展结点的不同方式将导致不同的分支限界法,以下除( C )之外都是最常见的方式.A.队列式分支限界法B.优先队列式分支限界法C.栈式分支限界法D.FIFO分支限界法12. .回溯算法和分支限界法的问题的解空间树不会是( D ).A.有序树B.子集树C.排列树D.无序树13.优先队列式分支限界法选取扩展结点的原则是( C )。

A、先进先出B、后进先出C、结点的优先级D、随机14.下面是贪心算法的基本要素的是( C )。

A、重叠子问题B、构造最优解C、贪心选择性质D、定义最优解15.回溯法在解空间树T上的搜索方式是( A ).A.深度优先B.广度优先C.最小耗费优先D.活结点优先二、填空题(20分,每空1分)。

算法设计与分析试题

算法设计与分析试题

算法设计与分析试题 一、 对于下图使用Dijkstra算法求由顶点a到顶点h的最短路径。

ahgfedcb12122823223

解:用V1表示已经找到最短路径的顶点,V2表示与V1中某个顶点相邻接且不在

V1中的顶点;E1表示加入到最短路径中的边,E2为与V1中的顶点相邻接且距离最短的路径。【1分】 步骤 V1 V2 E1 E2 1. {a} {b} {} {ab} 2. {a,b} {d} {ab} {bd} 3. {a,b,d} {c,f} {ab,bd} {dc,df} 4. {a,b,d,c} {f} {ab,bd} {df} 5. {a,b,c,d,f} {e} {ab,bd,dc,df} {fe} 6. {a,b,c,d,e,f} {g} {ab,bd,dc,df,fe} {eg} 7. {a,b,c,d,e,f,g} {h} {ab,bd,dc,df,fe,eg} {gh} 8. {a,b,c,d,e,f,g,h} {} {ab,bd,de,df,fe,eg,gh} {} 【以上每步2分】

结果:从a到h的最短路径为abdfegh,权值为18。【1分】

求所有顶点对之间的最短路径可以使用Dijkstra算法,使其起始节点从a循环到h,每次求起始节点到其他节点的最短路径,最终可以求得所有顶点对之间的最短路径。【2分】

二、 假设有7个物品,它们的重量和价值如下表所示。若这些物品均不能被分割,且背包容量M=150,使用回溯方法求解此背包问题。请写出状态空间搜索树。 物品 A B C D E F G

重量 35 30 60 50 40 10 25 价值 10 40 30 50 35 40 30

解:按照单位效益从大到小依次排列这7个物品为:FBGDECA。将它们的序号分

别记为1~7。则可生产如下的状态空间搜索树。其中各个节点处的限界函数值通过如下方式求得:【排序1分】

a

aabaacQ111x21x31x41x50x60x70xdee40x30x41xe51xf60xg50xh40xi20xj10x

算法分析与设计试题a

算法分析与设计试题a

算法分析与设计试题a 一、填空题(每小题3分,共30分) 1、算法是指解决问题的()或()。 2、顶层运算步骤是指定义在()级上的运算步骤。3、JaVa的Math类中方法 CeiI(X)的含义是()。4、在JaVa语言中,执行特定任务的()或()统称为方 法。5、直接或间接地调用自身的算法称为()。 6、用“分治法”设计出的算法一般是()。 7、动态规划算法的基本思想是将待求解问题分解成若干(),先求解(), 然后从这些()的解得到原问题的解。 8、问题的()是该问题可用动态规划算法或贪心算法求解的关键特征。9、以 深度优先方式系统搜索问题解的算法称为()。10、数值概率算法常用于()的求 解。 二、选择题(每小题2分,共20分) 1、下面不属于JaVa基本数据类型的是()。 A、 float B、 int C、 long D、 String 2、JaVa中对类成员的访问有()种不同的级别。A、3 B、4 C、5 D、6 3、StraSSen矩阵乘法是利用()实现的算法。 A、分治策略B、动态规划法C、贪心法D、回溯法4、下列是动态规划算法 基本要素的是()。 A、重叠子问题B、构造最优解C、算出最优解D、定义最优解5、下列算法 中通常以自底向上的方式求解最优解的是()。A、备忘录法B、动态规划法C、 贪心法D、回溯法6、下面不是分支界限法搜索方式的是()。 A、广度优先B、最小耗费优先C、最大效益优先D、深度优先 7、舍伍德算法是()的一种。 A、分支界限算法B、概率算法C、贪心算法D、回溯算法 8、在RAM指令集中,停机的指令是()。 A、 JUMP B、 JGTZ C、 JZERO D、 HALT 9、在下列算法中总能得到问题正确解的是()。 A、蒙特卡罗算法B、拉斯维加斯算法C、舍伍德算法D、数值概率算法 10、OT背包问题的回溯算法所需的计算时间为() nnA> 0(n2) B、O(nlogn) C、0(2) D、0(n) 三、简答题(每小题5分,共20分) 1、简述分治法的基本思想。 2、写出设计动态规划算法的主要步骤。 3、简述分支限界法与回溯法的异同。 4、写出用回溯法搜索排列树的算法。 四、算法设计题(每小题15分,共30分) 1、0—1背包问题:给定n种物品和一背包,物品i的重量是W,其价值为iv, 背包的容量为Co问应该如何装入背包中物品的总价值最大,写出用动态规i 划算法设计解决该问题的算法。 2、电路板排列问题:将n块电路板以最佳排列方案插入带有n个插槽的机箱 中,n块电路板的不同排列对应于不同的电路板插入方案。试写出用回溯算法解决 该问题的算法。

算法设计与分析试题及答案

算法设计与分析试题及答案

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)学年:学期:年级:专业:学习形式:层次:(本试题满分100分,时间90分钟)⼀、单选题(每⼩题2分,共计20分。

)1. 下列情况不适合使⽤计数排序的是()。

A 要排序的数据表的数量很⼤B 要排序的数据表中有相同的关键字C 要排序的数据表基本有序D 要排序的数据表元素各不相同2. 集合{A,B}的幂集合为()。

A.{A},{B}B.{A},{B},ΦC. { {A},{B}} D {{A,B},{A},{B},Φ}3.下列字符串序列不符合字典排序的是()。

A. abc acb bca B. abc acb cbaC. bac bca abc D abc bac bca4.对于根树,出度为零的节点为()。

A0节点B根节点C叶节点D分⽀节点5.对完全⼆叉树⾃顶向下,从左向右给节点编号,节点编号为10的⽗节点编号为()。

A0B2C4D66.下列程序段的算法时间的复杂度为()。

for i ←0 to n dofor j ←0 to m do s //某种基本操作A O(n2)B O(m2)C (m+n)D O(m*n)7.三个盘⼦的汉诺塔,⾄少要执⾏移动操作的次数为 ( )。

A 1次B 3次C 6次D 7次8.与算法英⽂单词algorithm具有相同来源的单词是()。

A logarithmB algirosC arithmosD algebra9.从排序过程是否完全在内存中显⽰,排序问题可以分为()。

A稳定排序与不稳定排序B内排序与外排序C直接排序与间接排序D主排序与辅助排序10.下列()不是衡量算法的标准。

A时间效率B空间效率C问题难度D适应能⼒⼆、简答题(每题8分,共计24分。

)1.贪婪技术的基本思想是什么?它有哪些应⽤(给出2种)?2. 拓扑排序的基本思想是什么?它可⽤于哪些实际问题中(给出2种)?3.是么是算法,算法与程序有什么区别?三、算法设计题(每题14分,共计56分。

(完整版)算法设计与分析考试题及答案,推荐文档

(完整版)算法设计与分析考试题及答案,推荐文档
法好坏的标准是______________________。 3.某一问题可用动态规划算法求解的显著特征是
____________________________________。 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

算法分析与设计综合试卷

算法分析与设计综合试卷

算法与分析综合试卷一、选择题1.算法分析是()。

A.将算法用某种程序设计语言恰当地表示出来B.在抽象数据集合上执行程序,以确定是否会产生错误的结果C.对算法需要多少计算时间和存储空间作定量分析D.证明算法对所有可能的合法输入都能算出正确的答案2.算法确认是()。

A.将算法用某种程序设计语言恰当地表示出来B.证明算法对所有可能的合法输入都能算出正确的答案C.对算法需要多少计算时间和存储空间作定量分析D.在抽象数据集合上执行程序,以确定是否会产生错误的结果3.算法与程序的区别在于算法具有()。

A.能行性B.确定性C.有穷性D.输入和输出4.设A[1..60]={11,12,…,70}。

算法BINARYSEARCH在A上搜索x=33、7、70、77时执行的元素比较次数分别为a、b、c、d,则()。

A.a<b<c<d B.a>b=c=d C.a<b=c=d D.a<c<b=d5.算法INSERTIONSORT 在A[1..8]={45,33,24,45,12,12,24,12}上运行时执行的元素比较次数为()。

A.14 B.28 C.7 D.226.当A[1..n]中元素取值在范围()时,算法RADIXSORT 的时间复杂度为T(nlogn)。

A.A.[1..n] B.[n..2n] C.[1..n2] D.[1.. 2n]7.设待排序的序列A[1..n]中元素取值于[1..n!],则下列哪一个算法最坏情况下排序更慢?A.SELECTIONSORT B.INSERTIONSORTC.RADIXSORT D.BUBBLESORT8.一个排序算法如果能够使得序列中相同元素的位置次序在排序前后保持一致,则称之为稳定的排序算法。

下列几种排序算法中哪一种不是稳定的?A.SELECTIONSORT B.RADIXSORTC.BUBBLEBSORT D.BOTTOMUPSORT9.使用算法EXP来计算下列哪一个整数次幂所花费的乘法次数最多?A.35B.36C.37D.3810.算法MAJORITY在下列哪一个输入上执行时最后j=n,count=1,且c是主元素?A.{5,7,5,4,5} B.{5,7,5,4,8} C.{2,4,1,4,4,4,6,4} D.{1,2,3,4,5} 11.用贪心法设计算法的关键是()。

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

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

一、选择题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。

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

.
1 / 4
一、 选择题〔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、 贪心选择性质 是贪心算法可行的第一个基本要素,也是贪心算法与动态规
划算法的主要区别.
.
2 / 4
6.快速排序
template
void QuickSort
{
if {
int q=Partition;
QuickSort ; //对左半段排序
QuickSort ; //对右半段排序
}
}
7.哈密顿环问题的算法可由回溯法设计实现.
8.贪心算法 不一定产生最优解.

9.
算法中通常以深度优先方式系统搜索问题解的是回溯法.
三、 算法设计与分析〔25分〕
1.用欧几里德迭代算法求两个数的最小公倍数〔10分〕
#include
using namespace std;
int Gcd
{
if
return n;
if
return m;
int t=m>n?n:m;
while
t--;
return t;
}
int main<>
{
int a,b;
cout<<"Input a & b <0<=a :";
cin>>a>>b;
int m=a*b/Gcd;
cout<<"The Least Common Multiple is:"<return 0;
2、试用动态规划算法实现最大子矩阵和问题:求nm矩阵A的一个子矩阵,使
其各元素之各为最大.〔15分〕
解:解答如下:
.
3 / 4
int MaxSum2
{
int sum=0;
int *b=new int[n+1];
for{
for b[k]=0;……………………………..〔5分〕
for{
for b[k]+=a[j][k];
int max=MaxSum;
ifsum> sum=max;
}
}
return sum;……………………………..〔10分〕
}
int MaxSum
{
int sum=0,b=0;
for{
if0> b+=a[i];
else b=a[i];
ifsum> sum=b;
}
Return sum;……………………………..〔15分〕
}
四、简答题〔33分〕
1、假设有7个物品,它们的重量和价值如下表所示.若这些物品均可以被分割,且背包容量M
=150,如果使用贪心方法求解此背包问题,使收益最大,请写出求解过程请写出求解过程.〔10
分〕

物品 A B C D E F G
重量 35 30 60 50 40 10 25
价值 10 40 30 50 35 40 30
解:使用单位价值从大到小:FBGDECA,得到贪心解为:FBGD全部放入,而E放入87.5%,
得到价值为190.625.
2.写出分治算法MaxMin算法对下列实例中找最大数和最小数的过程.〔10分〕
数组 A=<48,12,61,3,5,19,32,7>
解:1、 48,12,61,3, 5,19,32,7 表中元素多于二, 对半分割
2、48,12 61,3 5,19 32,7 表中元素多于二, 对半分割
3、 48~61, 12~3 19~32,5~7
求前半部分的最大最小和后半部分的最大最小,两个半部分的大者为最大,小者为
最小
4、 61~32 3~5 两个半部分的大者为最大,小者为最小
.
4 / 4
5、 61 3 寻找结束
3.写出多段图最短路经动态规划算法求解下列实例的过程,并求出最优值.〔13分〕

4 8 4
3
5 4 5
2
2 1 6

各边的代价如下:
C<1,2>=3, C<1,3>=5 ,C<1,4>=2
C<2,6>=8 ,C<2,7>=4 ,C<3,5>=5 ,C<3,6>=4, C<4,5>=2,C<4,6>=1
C<5,8>=4, C<6,8>=5 ,C<7,8>=6
解 :Cost<4,8>=0
Cost<3,7>= C<7,8>+0=6 ,
Cost<3,6>= C<6,8>+0=5,
Cost<3,5>= C<5,8>+0=4
Cost<2,4>=min{C<4,6>+ Cost<3,6>, C<4,5>+ Cost<3,5>}
=min{1+5,2+4}=6
Cost<2,3>=min{C<3,6>+ Cost<3,6> }
=min{4+5}=9
Cost<2,2>=min{C<2,6>+ Cost<3,6>, C<2,7>+ Cost<3,7>}
=min{8+5,4+6}=10
Cost<1,1>=min{C<1,2>+ Cost<2,2>, C<1,3>+ Cost<2,3>, C<1,4>+ Cost<2,4>}
=min{3+10,5+9,2+6}= 8
按上所述,Cost<1,1>为所求最优值.

5 1 3 4 2
6 7 8