算法分析与设计复习题及参考复习资料.docx





《算法分析与设计复习题及参考复习资料.docx》由会员分享,可在线阅读,更多相关《算法分析与设计复习题及参考复习资料.docx(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、网络教化课程考试复习题及参考答案算法分析及设计一、名词说明:1.算法2.程序3.递归函数4.子问题的重叠性质5.队列式分支限界法6.多机调度问题7.最小生成树二、简答题:1.备忘录方法和动态规划算法相比有何异同?简述之。2.简述回溯法解题的主要步骤。3.简述动态规划算法求解的根本要素。4.简述回溯法的根本思想。5.简要分析在递归算法中消退递归调用,将递归算法转化为非递归算法的方法。6.简要分析分支限界法及回溯法的异同。7.简述算法困难性的概念,算法困难性度量主要指哪两个方面?8.贪心算法求解的问题主要具有哪些性质?简述之。9.分治法的根本思想是什么?合并排序的根本思想是什么?请分别简述之。10
2、.简述分析贪心算法及动态规划算法的异同。三、算法编写及算法应用分析题: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.已知,k=1,2,3,4,5,6,r1=5,r2=10,r3=3,r4
3、=12,r5=5,r6=50,r7=6,求矩阵链积A1A2A3A4A5A6的最佳求积依次(要求给出计算步骤)。4.依据分枝限界算法根本过程,求解0-1背包问题。已知n=3,M=20,(w1,w2,w3)=(12,10,6),(p1,p2,p3)=(15,13,10)。5.试用贪心算法求解汽车加油问题:已知一辆汽车加满油后可行驶n公里,而旅途中有若干个加油站。试设计一个有效算法,指出应在哪些加油站停靠加油,使加油次数最少,请写出该算法。6.试用动态规划算法实现下列问题:设A和B是两个字符串。我们要用最少的字符操作,将字符串A转换为字符串B,这里所说的字符操作包括:删除一个字符。插入一个字符。将一
4、个字符改为另一个字符。请写出该算法。7.对于下图运用Dijkstra算法求由顶点a到顶点h的最短途径。8.试写出用分治法对数组An实现快速排序的算法。9.有n个活动争用一个活动室。已知活动i占用的时间区域为si,f i,活动i,j相容的条件是:sjf i,问题的解表示为(xi| xi =1,2,n,),xi表示依次为i的活动编号活动,求一个相容的活动子集,且支配的活动数目最多。10.设x1、x2、x3是一个三角形的三条边,而且x1+x2+x3=14。请问有多少种不同的三角形?给出解答过程。11.设数组A有n个元素,须要找出其中的最大最小值。请给出一个解决方法,并分析其困难性。把n个元素等分为两
5、组A1和A2,分别求这两组的最大值和最小值,然后分别将这两组的最大值和最小值相比拟,求出全部元素的最大值和最小值。假如A1和A2中的元素多于两个,则再用上述方法各分为两个子集。直至子集中元素至多两个元素为止。这是什么方法的思想?请给出该方法的算法描绘,并分析其困难性。12.有n个程序和长度为L的磁带,程序i的长度为ai,已知,求最优解(xi,x2 ,.,xi, xn),xi =0,1, xi =1,表示程序i存入磁带,xi =0,表示程序i不存入磁带,满意,且存放的程序数目最多。13.试用分治法实现有重复元素的排列问题:设是要进展排列的个元素,其中元素可能一样,试设计计算的全部不同排列的算法。
6、14.试用动态规划算法实现0-1闭包问题,请写出该算法。15.试用贪心算法求解下列问题:将正整数n分解为若干个互不一样的自然数之和,使这些自然数的乘积最大,请写出该算法。16.试写出用分治法对一个有序表实现二分搜寻的算法。17.试用动态规划算法实现最长公共子序列问题,请写出该算法。18.假设有7个物品,它们的重量和价值如下表所示。若这些物品均不能被分割,且背包涵量M150,运用回溯方法求解此背包问题,请写出状态空间搜寻树。物品ABCDEFG重量35306050401025价值1040305035403019.求解子集和问题:对于集合S=1,2 ,6,8,求子集,要求该子集的元素之和d=9。画出
7、子集和问题的解空间树;该树运用回溯算法,写出依回溯算法遍历节点的依次;假如S中有n个元素,指定d,用伪代码描绘求解子集和问题的回溯算法。20.求解填字嬉戏问题:在33个方格的方阵中要填入数字1到N(N10)内的某9个数字,每个方格填一个整数,似的全部相邻两个方格内的两个整数之和为质数。试采纳回溯法写出满意这个要求的一种数字填法的算法和满意这个要求的全部数字填法的算法。21.试用动态规划算法实现最大子矩阵和问题:求矩阵A的一个子矩阵,使其各元素之和为最大。22.试用回溯法解决下列整数变换问题:关于整数的变换和定义如下:。对于给定的两个整数和,要求用最少的变换和变换次数将变为。23.关于15谜问题
8、。在一个44的方格的棋盘上,将数字1到15代表的15个棋子以随意的依次置入各方格中,空出一格。要求通过有限次的挪动,把一个给定的初始状态变成目的状态。挪动的规则是:每次只能把空格四周的四格数字(棋子)中的随意一个移入空格,从而形成一个新的状态。为了有效的挪动,设计了估值函数C1(x),表示在结点x的状态下,没有到达目的状态下的正确位置的棋子的个数。请运用该估计函数,对图示的初始状态,给出访用分支限界方法转换到目的状态的搜寻树。124563791012813141115123456789101112131415初始状态 目的状态参考答案一、名词说明:1.算法:算法是指解决问题的一种方法或一个过程
9、。算法是若干指令的有穷序列,满意性质:(1)输入:有零个或多个外部量作为算法的输入;(2)输出:算法产生至少一个量作为输出;(3)确定性:组成算法的每条指令清楚、无歧义;(4)有限性:算法中每条指令的执行次数有限,执行每条指令的时间也有限。2.程序:程序是算法用某种程序设计语言的详细实现。3.递归函数:用函数自身给出定义的函数称为递归函数。4.子问题的重叠性质:递归算法求解问题时,每次产生的子问题并不总是新问题,有些子问题被反复计算屡次,这种性质称为子问题的重叠性质。5.队列式分支限界法:队列式(FIFO)分支限界法是将活结点表组织成一个队列,并依据队列的先进先出(FIFO)原则选取下一个结点
10、为扩展结点。6.多机调度问题:多机调度问题要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。同时约定每个作业均可在任何一台机器上加工处理,但未完工前不允许中断处理。作业不能拆分成更小的子作业。7.最小生成树:G=(V,E)是无向连通带权图,G的子图称为G的生成树,生成树上各边权的总和称为该生成树的消耗,在G的全部生成树中,消耗最小的生成树称为G的最小生成树。二、简答题:1.备忘录方法和动态规划算法相比有何异同?简述之。备忘录方法是动态规划算法的变形。及动态规划算法一样,备忘录方法用表格保存已解决的子问题的答案,在下次须要解此问题时,只要简洁地查看该子问题的解答
11、,而不必重新计算。备忘录方法及动态规划算法不同的是,备忘录方法的递归方式是自顶向下的,而动态规划算法则是自底向上递归的。因此,备忘录方法的限制构造及干脆递归方法的限制构造一样,区分在于备忘录方法为每个解过的子问题建立了备忘录以备须要时查看,避开了一样的子问题的重复求解,而干脆递归方法没有此功能。2.简述回溯法解题的主要步骤。回溯法解题的主要步骤包括:1)针对所给问题,定义问题的解空间;2)确定易于搜寻的解空间构造;3)以深度优先方式搜寻解空间,并在搜寻过程中用剪枝函数避开无效搜寻。3.简述动态规划算法求解的根本要素。动态规划算法求解的根本要素包括:1)最优子构造是问题能用动态规划算法求解的前提
12、;2)动态规划算法,对每一个子问题只解一次,而后将其解保存在一个表格中,当再次须要解此子问题时,只是简洁地用常数时间查看一下结果,即重叠子问题。4.简述回溯法的根本思想。回溯法的根本做法是搜寻,在问题的解空间树中,按深度优先策略,从根结点动身搜寻解空间树。算法搜寻至解空间树的随意一点时,先推断该结点是否包含问题的解。假如确定不包含,则跳过对该结点为根的子树的搜寻,逐层向其祖先结点回溯;否则,进入该子树,接着按深度优先策略搜寻。5.简要分析在递归算法中消退递归调用,将递归算法转化为非递归算法的方法。将递归算法转化为非递归算法的方法主要有:1)采纳一个用户定义的栈来模拟系统的递归调用工作栈。该方法
13、通用性强,但本质上还是递归,只不过人工做了原来由编译器做的事情,优化效果不明显。2)用递推来实现递归函数。3)通过Cooper变换、反演化换能将一些递归转化为尾递归,从而迭代求出结果。后两种方法在时空困难度上均有较大改善,但其适用范围有限。6.简要分析分支限界法及回溯法的异同。1)求解目的:回溯法的求解目的是找出解空间树中满意约束条件的全部解,而分支限界法的求解目的则是找出满意约束条件的一个解,或是在满意约束条件的解中找出在某种意义下的最优解。 2)搜寻方式的不同:回溯法以深度优先的方式搜寻解空间树,而分支限界法则以广度优先或以最小消耗优先的方式搜寻解空间树。7.简述算法困难性的概念,算法困难
14、性度量主要指哪两个方面?算法困难性是算法运行所须要的计算机资源的量,须要时间资源的量称为时间困难性,须要的空间资源的量称为空间困难性。这个量应当只依靠于算法要解的问题的规模、算法的输入和算法本身的函数。假如分别用N、I和A表示算法要解问题的规模、算法的输入和算法本身,而且用C表示困难性,那么,应当有C=F(N,I,A)。算法困难性度量主要包括算法的时间困难性和算法的空间困难性。8.贪心算法求解的问题主要具有哪些性质?简述之。贪心算法求解的问题一般具有二个重要的性质:一是贪心选择性质,这是贪心算法可行的第一个根本要素;另一个是最优子构造性质,问题的最优子构造性质是该问题可用贪心算法求解的关键特征
15、。9.分治法的根本思想是什么?合并排序的根本思想是什么?请分别简述之。分治法的根本思想:将n个输入分成k个不同子集合,得到k个不同的可独立求解的子问题,其中1kn,而且子问题及原问题性质一样,原问题的解可由这些子问题的解合并得出。合并排序根本思想:将待排序元素分成大小大致一样的2个子集合,分别对2个子集合进展排序,最终将排好序的子集合合并成为所要求的排好序的集合。10.简述分析贪心算法及动态规划算法的异同。贪心算法和动态规划算法都要求问题具有最优子构造性质,这是两类算法的一个共同点。动态规划算法通常以自底向上的方式解各子问题,而贪心算法则通常以自顶向下的方式进展,以迭代的方式作出相继的贪心选择
16、,每作一次贪心选择就将所求问题简化为规模更小的子问题。三、算法编写及算法应用分析题:1.已知有3个物品:(w1,w2,w3)=(12,10,6), (p1,p2,p3)=(15,13,10), 背包的容积M=20,依据0-1背包动态规划的递推式求出最优解。解:依据递推式 fi(X)maxfi-1(X),fi-l(Xwi)+pi |Xwi 从i=1开场,最终得到fn(M)f1(1) f1(11)= 0 f1(12) f1(20)= p1=15f2(1) f2(9)= 0f2(10) f2(11)= maxf1(10),f1(10 w2)+p2 =13f2(12) f2(20)= maxf1(12
17、),f1(12 w2)+p2=15f3(20)=maxf2(20),f2(20 w3)+p3 = f2(20 6)+10=25可获得的最大利润为25,最优解为:(1,0,1)2.按要求完成以下关于排序和查找的问题。(1) 对数组A=15,29,135,18,32,1,27,25,5,用快速排序方法将其排成递减序。(2) 请描绘递减数组进展二分搜寻的根本思想,并给出非递归算法。(3) 给出上述算法的递归算法。(4) 运用上述算法对(1)所得到的结果搜寻如下元素,并给出搜寻过程:18,31,135。解:(1)第一步:15 29 135 18 32 1 27 25 5 第二步:29 135 18 3
18、2 27 25 15 1 5 第三步:135 32 29 18 27 25 15 5 1 第四步:135 32 29 27 25 18 15 5 1 (2)根本思想:首先将待搜寻元素v及数组的中间元素进展比拟,假如,则在前半局部元素中搜寻v;若,则搜寻胜利;否则在后半局部数组中搜寻v。非递归算法:输入:递减数组Aleft:right,待搜寻元素v。输出:v在A中的位置pos,或者不在A中的消息(-1)。步骤:【3分】int BinarySearch(int A,int left,int right,int v)int mid;while (leftAmid) right=mid-1;else
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 分析 设计 复习题 参考 复习资料

限制150内