算法设计与分析期末试卷A卷.doc

上传人:美****子 文档编号:77539654 上传时间:2023-03-15 格式:DOC 页数:8 大小:68KB
返回 下载 相关 举报
算法设计与分析期末试卷A卷.doc_第1页
第1页 / 共8页
算法设计与分析期末试卷A卷.doc_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《算法设计与分析期末试卷A卷.doc》由会员分享,可在线阅读,更多相关《算法设计与分析期末试卷A卷.doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、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、On2nB、OnlognC、O2nD、On6分支限界法解最大团问题时,活结点表的组

2、织形式是B。A、最小堆B、最大堆 C、栈D、数组7、下面问题B 不能使用贪心法解决。A 单源最短路径问题 B N皇后问题 C 最小花费生成树问题 D 背包问题8.以下算法中不能解决0/1背包问题的是A A 贪心法 B 动态规划 C 回溯法 D 分支限界法9.背包问题的贪心算法所需的计算时间为B A、On2n B、Onlogn C、O2n D、On10.背包问题的贪心算法所需的计算时间为B 。A、On2nB、OnlognC、O2nD、On二、 填空题 复杂性与 复杂性之分。2.算法是由假设干条指令组成的有穷序列,且要满足输入、 、确定性与 四条性质。其中算法的“确定性指的是组成算法的每条 是清晰

3、的,无歧义的。3.解决0/1背包问题可以使用动态规划、回溯法与分支限界法,其中不需要排序的是 ,需要排序的是 , 。4.动态规划算法的两个根本要素是. 性质与 性质 。5.回溯法是一种既带有 又带有 的搜索算法;分支限界法是一种既带有 又带有 的搜索算法。6. 用回溯法解题的一个显著特征是在搜索过程中动态产生问题的解空间。在任何时刻,算法只保存从根结点到当前扩展结点的路径。如果解空间树 中从根结点到叶结点的最长路径的长度为h(n),那么回溯法所需的计算空间通常为 。7. 用回溯法解图的m着色问题时,使用下面的函数OK检查当前扩展结点的每一个儿子所相应的颜色的可用性,那么需耗时渐进时间上限 。B

4、ool Color:OK(int k) for(int j=1;j=n;j+)if(akj= =1)&(xj= =xk) return false;return true;8. 用回溯法解布线问题时,求最优解的主要程序段如下。如果布线区域划分为的方格阵列,扩展每个结点需O(1)的时间,L为最短布线路径的长度,那么算法共耗时 ,构造相应的最短距离需要 时间。for (int i = 0; i NumOfNbrs; i+) nbr.row = here.row + offseti.row; nbr.col = here.col + offseti.col; if (gridnbr.rownbr.c

5、ol = 0) / 该方格未标记 gridnbr.rownbr.col = gridhere.rowhere.col + 1; if (nbr.row = finish.row) & (nbr.col = finish.col) break; / 完成布线 Q.Add(nbr); 9.快速排序算法是基于 的一种排序算法。10. 是贪心算法可行的第一个根本要素,也是贪心算法与动态规划算法的主要区别三 简答题1. 设计动态规划算法的主要步骤是怎么的?请简述。2. 分治法所能解决的问题一般具有哪几个特征?请简述。3. 分支限界法的搜索策略是什么?四 计算题1.非齐次递归方程: ,其中,b、c是常数,

6、g(n)是n的某一个函数。那么f(n)的非递归表达式为:。现有Hanoi塔问题的递归方程为: ,求h(n)的非递归表达式。2.给定带权有向图如以下图所示G =(V,E),其中每条边的权是非负实数。另外,还给定V中的一个顶点,称为源。现在要计算从源到所有其它各顶点的最短路长度。这里路的长度是指路上各边权之与。现采用Dijkstra算法计算从源顶点1到其它顶点间最短路径。请将此过程填入下表中。43211初始dist5dist4dist3dist2uS迭代五 程序题1. 试用贪心算法求解汽车加油问题:一辆汽车加满油后可行驶n公里,而旅途中有假设干个加油站。试设计一个有效算法,指出应在哪些加油站停靠加

7、油,使加油次数最少,请写出该算法。2.试用动态规划算法实现以下问题:设A与B是两个字符串。我们要用最少的字符操作,将字符串A转换为字符串B,这里所说的字符操作包括: 1删除一个字符。2插入一个字符。3将一个字符改为另一个字符。 请写出该算法。答案:一、 AABDB BBABB1. 时间 空间 2. 输出 有限性 指令3. 动态规划 回溯法 分支限界法4. 最优子构造 重叠子问题5. 系统性 跳跃性 系统性 跳跃性6. O(h(n)6. Omn7. O(mn) O(L)8. 分治策略 9. 贪心选择性质1. 1找出最优解的性质,并刻划其构造特征。 2递归地定义最优值。 3以自底向上的方式计算出最

8、优值。 4根据计算最优值时得到的信息,构造最优解。2. 1该问题的规模缩小到一定的程度就可以容易地解决; 2该问题可以分解为假设干个规模较小的一样问题,即该问题具有最优子构造性质; (3) 利用该问题分解出的子问题的解可以合并为该问题的解; 4原问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子问题。 3. 在扩展结点处,先生成其所有的儿子结点分支,然后再从当前的活结点表中选择下一个扩展结点。为了有效地选择下一扩展结点,加速搜索的进程,在每一个活结点处,计算一个函数值限界,并根据函数值,从当前活结点表中选择一个最有利的结点作为扩展结点,使搜索朝着解空间上有最优解的分支推进,以便尽

9、快地找出一个最优解。1.解:利用给出的关系式,此时有:b=2, c=1, g(n)=1, 从n递推到1,有:6030501051,2,3,4,546030501031,2,4,339030501041,2,4210030601021,211003010-1初始dist5dist4dist3dist2uS迭代2.五 程序题1.解:int greedy(vecterx,int n) int sum=0,k=x.size(); for(int j=0;jn) coutNo solutionendl; return -1; For(int i=0,s=0;in)sum+;s=xi; return sum;2.解:此题用动态规划算法求解: int dist()int m=a.size();int n=b.size();vectord(n+1,0);for(int i=1;i=n;i+)di=i;for(i=1;i=m;i+)int y=i-1;for(int j=1;j1dj-1:i;int del=ai-1=bj-10:1;dj=min(x+del,y+1,z+1);return dn;第 8 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 文案大全

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁