计算机算法设计与分析期末复习资料(共7页).docx

上传人:飞****2 文档编号:14252336 上传时间:2022-05-03 格式:DOCX 页数:7 大小:31.97KB
返回 下载 相关 举报
计算机算法设计与分析期末复习资料(共7页).docx_第1页
第1页 / 共7页
计算机算法设计与分析期末复习资料(共7页).docx_第2页
第2页 / 共7页
点击查看更多>>
资源描述

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

1、精选优质文档-倾情为你奉上一 填空题(20x1=20分)1. 当设定的问题有多种算法去解决时,其选择算法的主要原则是选择其中复杂性最低者。2. 用函数自身给出定义的函数是一种递归函数。3. 动态规划算法适用于解最优化问题。4. 贪心算法的两个基本要素是最优子结构性质、贪心选择性质。5. 回溯法在搜索解空间树的时候,为了避免无效搜索,通常使用深度优先手段来提高搜索效率。6. 依据求解目标的不同,分支界限法和回溯法分别用广度优先遍历或者最小耗费优先、深度优先的方式搜索解空间树。7. 分支界限法和回溯法主要区别在于求解目标和搜索方式不同。8. 在分支界限法实现的时候,通常采用 方式来实现最大优先队列

2、。9. 依据求解所花费的时间和所得到的结果不同,随机化算法大致分为数值随机化算法、蒙特卡罗算法、拉斯维加斯算法和舍伍德算法四类。10. 产生伪随机数最常用的方法是线性同余法。11. 线性规划算法中转轴变化的目的是将入基变量与离基变量互调位置。12. 最大网络流问题中可增广路是残留网络中一条容量大于0的路。13. 待解决问题适用于动态规划法的两个基本要素是 。14. 算法必须满足的四个特征是输入、输出、确定性、有限性。15. 算法复杂性依赖于 、 、 三个方面的复杂因素。16. 实现递归调用的关键是 17. 动态规划算法求解问题的重要线索是问题的 性质。18. 最优子结构性质是贪心算法求解问题的

3、关键特征。19. 分支界限法的求解目标是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。20. 问题的解空间树常见的有子集树、排列树两种类型。21. 分支界限算法依据其从和节点表中选择获得下一扩展节点的不同方式被分为22. 对于任何约束标准型线性规划问题,只要将所用分基本变量都设置为0,就可以获得一个 解。二 判断题(20x1=20分)1. 算法的描述方式有自然语言、程序语言,或者两者相结合的形式。( )2. 算法满足的特性有哪些,程序有什么特征,而这有什么关系。3. 算法复杂度越高或者越低与占用计算机资源的关系是什么。4. 算法复杂性上界的阶,越高或者越低与结果的

4、准确性和实际价值关系。5. 递归算法和非递归算法两者之间的效率如何。6. 动态规划算法带求解的问题是否可以用分支界限法、分治法、线性规划法、回溯法等其他的算法求解。7. 动态规划算法带求解的问题,经分解得到的子问题,是独立的还是不独立的。8. 如果问题具有最优子结构性质,请问这个问题使用动态规划法和贪心算法那个更好。9. 贪心算法在一般情况下,是否能够得到整体最优解,还是最优解的近似值。10. 动态规划法和贪心算法,在求解问题的时候都是自顶向下的吗?11. 请问对于待解决的问题,有“通用解题法”之称的是什么算法? 回溯法12. 回溯法是通过遍历搜索树找到问题的最优解的吗?13. 在分支界限法和

5、回溯法中,每个节点都有机会成为扩展节点吗?14. 对于待解决的同一个问题,随机化算法与非随机化算法,谁的复杂度高?谁的复杂度低?15. 数值化随机算法用于求解问题的准确解吗?16. 蒙特卡罗算法是用于球问题的准确解还是近似解,并且得到的解,一定是可靠的吗?17. 舍伍德算法能够得到问题的准确解吗?18. 二分搜索算法是那种算法的一种典型实例? 分治法19. 矩阵连乘问题,最实用的算法是什么?20. 程序必须满足算法的所有属性吗?21. 算法复杂性与计算机的本身资源有关吗?22. 算法描述的方式除了自然语言、程序语言23. 算法复杂性的阶越高越好吗?24. 动态规划法和分治法一定要把求解的问题分

6、解成为若干个子问题吗?25. 如果问题具有最优子结构性质,贪心算法比其他的算法都要好吗?三 概念题(6x2=12分)1. 算法复杂性:是算法运行所需要的计算机资源的量,需要时间资源的量称为时间复杂性,需要空间资源的量称为空间复杂性。2. 递归算法:直接或间接地调用自身的算法称为递归算法。3. 贪心算法:在对问题求解时,总是做出当前看来是最好的选择。也就是说,贪心算法并不从整体最优考虑,他所做出的选择只是在某种意义上的局部最优选择。贪心算法不能对所有问题都得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。4. 子集树:当所给问题是从n个元素的集合s中找出满足某

7、种性质的子集时,相应的解空间树称为子集树。5. 队列式(FIFO)分支限界法:将活结点表组织成一个队列,并按队列的先进先出原则选取下一个结点为当前扩展结点。6. 分治法:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。7. 算法:由若干条指令组成的有穷序列。8. 最优子结构:当一个问题的最优解包含了其子问题的最优解时,称该问题具有最优子结构性质。9. 回溯法:以深度优先方式系统搜索问题解的算法称为回溯法。10. 排列树:当所给的问题是确定n个元素满足某种性质的排列时,相应的解空间树称为排列树。11. 网络流:是定义在网络的边集合E上的一个非负函数flow =

8、flow(v,w),并称flow(v,w)为边(v,w)上的流量。四 简答题(3x4=12分)1. 在一个算法中调用另一个算法时,系统需在运行被调用算法之前完成哪些工作?同时从被调用算法返回调用算法需完成哪些工作?答:在一个算法中调用另一算法时,系统需在运行被调用算法之前先完成三件事:(1) 将所有实参指针、返回地址等信息传递给被调用算法;(2) 为被调用算法的局部变量分配存储区;(3) 将控制转移到被调用算法的入口。在从被调用算法返回调用算法时需完成三件事:(1) 保存被调用算法的计算结果;(2) 释放分配给被调用算法的数据区;(3) 依照被调用算法保存的返回地址将控制转移到调用算法。2.

9、动态规划算法求解问题的步骤?答:动态规划法适用于解最优化问题。通常可以按以下4个步骤设计:(1) 找出最优解的性质,并刻画其结构特征;(2) 递归地定义最优值;(3) 以自底向上的方式计算最优值;(4) 根据计算最优值时得到的信息构造最优解。3. 线性规划法中单纯形算法的基本步骤?答:步骤一 选入基变量。步骤二 选离基变量。步骤三 做转轴变换。步骤四 转步骤一。4. 分治法的基本思想和原理是什么?答:分治法的基本思想是将一个规模为的问题分解为个规模较小的子问题,这些子问题互相独立且与原问题相同。递归地解这些子问题,然后将各子问题的解合并得到原问题的解。5. 利用回溯法解决问题包含哪些步骤?答:

10、利用回溯法解题常包含以下3步骤:(1) 针对所给问题,定义问题的解空间;(2) 确定易于搜索的解空间结构;(3) 以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。五 分析题(36分)1求下列函数的渐进表达式:3n2+10n; n2/10+2n; 21+1/n; logn3; 10log3n分析与解答:3n2+10n=O(n2); n2/10+2n=O(2n); 21+1/n=O(1); logn3=O(logn); 10log3n=O(n)2讨论O(1)和O(2)的区别。分析与解答:根据符号O的定义易知O(1)=O(2)。用O(1)或O(2)表示同一个函数时,差别仅在于其中的常

11、数因子。3按渐近阶排列表达式按照渐近阶从低到高的顺序排列以下表达式:4n2,logn,3n,20n,2,n2/3。又n!应该排在哪一位?分析与解答:按渐近阶从低到高,函数排列顺序如下:2,logn,n2/3,20n,4n2,3n,n!。4.算法效率(1)假设某算法在输入规模为n时计算时间为T(n)=3*2n。在某台计算机上实现并完成该算法的时间为t秒。现有另一台计算机,其运行速度为第一台的64倍,那么在这台新机器上用同一算法在t秒内能解输入规模为多大的问题?(2)若上述算法的计算时间改进为T(n)=n2,其余条件不变,则在新机器上用t秒时间能解输入规模为多大的问题?(3)若上述算法的计算时间进

12、一步改进为T(n)=8,其余条件不变,那么在新机器上用t秒时间能解输入规模为多大的问题?分析解答:(1)设新机器用同一算法在t秒内能解输入规模为n1的问题。因此有:t=3*22=3*2n1/64,解得你n1=n+6。(2)n12=64n2n1=8n。(3)由于T(n)=常数,因此算法可解任意规模的问题。5阶乘函数 阶乘函数可递归地定义为:int factorial(int n)if(n = = 0) return 1;return n * factorial(n-1);6Fibonacci数列无穷数列1,1,2,3,5,8,13,21,34,55,称为Fibonacci数列。它可以递归地定义为

13、:请对这个无穷数列设计一个算法,并进行描述(自然语言描述和VC+描述).第n个Fibonacci数可递归地计算如下:int fibonacci(int n) if (n 1时,取y1=1;yk=0;yi=xi,1in,ik,则因此,()是所给最有装载问题的可行解。另一方面,由知,()是满足贪心选择性质的最优解。所以,最优装载问题具有贪心选择性质。 (2)最优装载问题可用贪心算法求解。采用重量最轻者先装的贪心选择策略,可产生最优装载问题的最优解。具体算法描述如下。templatevoid Loading(int x, Type w, Type c, int n) int *t = new int n+1; Sort(w, t, n); for (int i = 1; i = n; i+) xi = 0; for (int i = 1; i = n & wti = c; i+) xti = 1; c -= wti; 专心-专注-专业

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

当前位置:首页 > 教育专区 > 教案示例

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

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