算法设计与分析试题

(中国科学院大学-陈玉福-2011秋)

一. 回答下列问题: (每小题5分)

1.陈述算法在最坏情况下的时间复杂度和平均时间复杂度;这两种评估算法复杂性的方法各自有什么实际意义?

最坏情况下的时间复杂度称最坏时间复杂度。一般不特别说明,讨论的时间复杂度均是最坏情况下的时间复杂度。
这样做的原因是:最坏情况下的时间复杂度是算法在任何输入实例上运行时间的上界,这就保证了算法的运行时间不会比任何更长。

平均时间复杂度是指所有可能的输入实例均以等概率出现的情况下,算法的期望运行时间。

2.阐述动态规划算法与贪心算法的区别,它们都有那些优势和劣势?

动态规划算法与贪心算法都要求问题具有最优子结构性质,这是二者的一个共同点。但是对于具有最优子结构的问题应该选择前者还后者来解决?下面通过两个经典的组合优化问题谈谈动态规划算法与贪心算法的主要差异

动态规划法与分治法和贪心法类似,它也是将原问题分解为若干个更小的、相似的子问题,并通过求解子问题产生一个全局最优解。与分治法和贪心法不同之处在于:

①使用贪心法时,当前的选择可能要依赖于已经作出的所有选择,但不依赖于有待于做出的选择和子问题。因此贪心法是自顶向下(即从起点到终点),一步一步地作出贪心选择。当然,如果当前的选择可能要依赖于子问题的解时,则难以通过局部的贪心策略达到全局最优解。

②使用分治法时,由原问题分解出的各子问题通常是相互独立的,即不包含公共的子问题,因此一旦递归地求出各子问题的解后,便可自下而上地将各子问题的解合并成问题的解。如果各子问题不是相互独立的,则分治法要做许多不必要的工作,重复地求解公共的子问题。

③动态规划允许由原问题分解出的子问题之间相互依赖。每一个子问题只求解一次,并将结果保存起来,避免每次碰到此子问题时都要重复计算

3.阐述回溯算法与分枝限界算法的共同点和不同点,提高算法效率的关键是什么?

4.在对算法进行复杂性分析时,强调渐进复杂性的意义是什么?

算法的复杂性是算法效率的度量,是评价算法优劣的重要依据。一个算法的复杂性的高低体现在运行该算法所需要的计算机资源的多少上面,所需的资源越多,我们就说该算法的复杂性越高;反之,所需的资源越低,则该算法的复杂性越低。简化算法复杂性分析的方法和步骤,即只要考察当问题的规模充分大时,算法复杂性在渐近意义下的阶。与此简化的复杂性分析方法相配套,问题复杂程度和规模的线性增长导致的时耗的增长和空间需求的增长,对低效算法来说,都是超线性的,决非计算机速度和容量的线性增长带来的时耗减少和存储空间的扩大所能抵销。

二.(20分)试用Prim算法求解下面无向赋权图的最小生成树,指出最小生成树及该树中各边被选中的先后次序;写出算法的基本步骤。

 

解:根据Prim算法,从V1开始,选择10    V1和V4加入集合

找出集合中顶点相邻的最小权值点V7加入集合

依次为V 1 V4 V7 V8 V3V5 V2 V6

基本步骤:从第一个结点开始,加入集合A

每次选择A中顶点与A外的顶点权值最小的顶点,加入集合A

直到集合A包含所有顶点

三.(20分)用LC-分枝限界算法求解0/1背包问题: ,物品重量和价值分别是:

w=(2,3,4,6,9)  p=(8,9,10,12,18)

1.画出由算法生成的状态空间树,并标明各节点的优先级的值;

2.给出各节点被选作当前扩展节点的先后次序;

3.给出最优解。

解:30

具体步骤就不写了

四. (20分)已知一组数满足,且被搜索的对象的概率分布是:

其中a表示被搜索对象在区间内的概率,b表示被搜索对象为的概率,

使用动态规划算法求该搜索问题的最优二叉搜索树。

解:各子树的根:

1 1 1 4 4

0 2 3 4 4

0 0 3 4 4

0 0 0 4 4

0 0 0 0 5

最优二叉树结构:

k4是根

k1是k4的左孩子

d0是k1的左孩子

k3是k1的右孩子

k2是k3的左孩子

d1是k2的左孩子

d2是k2的右孩子

d3是k3的右孩子

k5是k4的右孩子

d4是k5的左孩子

d5是k5的右孩子

0.1      0.37      0.54     0.89     1.645     2.425

0      0.01      0.11    0.345      0.85      1.63

0         0      0.02    0.195      0.64      1.42

0         0         0     0.04      0.39      1.17

0         0         0         0     0.03     0.535

0         0         0        0         0      0.2

五.(20分) 假定已知"无向图的Hamilton回路"问题是NPC问题,证明"旅行商判定问题"也是NPC问题。                               

解:首先,旅行商问题是NP的,因为对其解的任一猜想,要检验它是否是最优的,需要同所有其它的环游戏比较,这样的环游会有指数个,因而不可能在多项式时间内完成

考虑图的哈密顿回路问题,已知无向图G |V|=n,构造其对应的旅行商问题为

Dij={1,if(vi,vj)属于边,2,否则}

显然,这一变换可以在多项式时间内完成,而且,G有哈回路的充分必要条件是上述构建的旅行商问题有解,且解对应的路长度为N,因为,若G中不含哈回路,则路长至少为n+1 因为已知哈回路问题是NPC问题,并且上述变换为多项式变换,所以旅行商问题也为NPC问题

有问题直接回复即可!

【算法】算法设计与分析试题(含答案)相关推荐

  1. c语言设计期末考试试题及答案,C语言程序的设计期末考试试题(含答案).pdf

    一.单项选择题 (本大题共20题,每题2 分,共40 分) 1.以下不是C语言的特点的是() A C B . 语言简洁.紧凑 .能够编制出功能复杂的程序 C.C语言可以直接对硬件进行操作 D.C语言移 ...

  2. 计算机图形学在线考试题,图形学模拟试题含答案.doc

    <图形学模拟试题含答案.doc>由会员分享,可在线阅读,更多相关<图形学模拟试题含答案.doc(9页珍藏版)>请在装配图网上搜索. 1.计算机图形学课程模拟试卷 (参考答案含评 ...

  3. java 字符串乱码_这份Java面试题含答案解析竟然真的让你不用在面试上“如履薄冰”...

    面试题集共分为以下十部分: 一.Core Java: 1 - 95 题1 - 24 页 基础及语法: 1 - 61 题1 - 13 页 异常: 62 - 69 题13 - 15 页 集合: 70 - ...

  4. 在c语言中,字符串topt65的长度是,c语言程序设计期末考试试题(含答案)123612210...

    <c语言程序设计期末考试试题(含答案)123612210>由会员分享,可在线阅读,更多相关<c语言程序设计期末考试试题(含答案)123612210(10页珍藏版)>请在人人文库 ...

  5. c语言错误 xef代表什么,C语言(次)笔试题含答案【DOC精选】.doc

    C语言(次)笔试题含答案[DOC精选] 第二十二次等级考试 二级(C与C++语言) 笔 试 试 卷 时间: 2005年4月16日 上午 9:00-11:00 第一部分 软件技术基础 (共15分) 一. ...

  6. 计算机二级c 试题 答案,200409计算机二级C笔试试题(含答案)

    200409计算机二级C笔试试题(含答案) (14页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.9 积分 全国计算机等级考试二级笔试试卷基础部分 ...

  7. c语言输入字符串 48CT,2004年9月全国计算机等级考试二级C笔试试题含答案

    1.与十进制数200等值的十六进制数为 A) A8 B)A4 C)C8 D)C4 2.DOS文件系统的组织结构属于 A)星形结构 B)网形结构 C) 环形结构 D)树形结构 3. 对存储器按字节进行编 ...

  8. c语言程序考试试题,C语言程序设计期末考试试题(含答案)

    <C语言程序设计期末考试试题(含答案)>由会员分享,可在线阅读,更多相关<C语言程序设计期末考试试题(含答案)(6页珍藏版)>请在人人文库网上搜索. 1.C 语言程序设计期末考 ...

  9. 初中计算机课标考试,初中信息技术课程标准试题(含答案)

    <初中信息技术课程标准试题(含答案)>由会员分享,可在线阅读,更多相关<初中信息技术课程标准试题(含答案)(5页珍藏版)>请在人人文库网上搜索. 1.学校 单 位_______ ...

最新文章

  1. php在web端播放amr语音(如微信语音)
  2. 关于写文本文件的问题
  3. java transient关键字
  4. 传递子类 java_Java,将主类传递给子类,错误的编码风格?
  5. HTML做出7个网页,HTML适用于除IE 7以外的每个网页浏览器。
  6. [转]瀑布流布局浅析
  7. remmima 不能保存_不再使用RememBear密码管理器忘记密码
  8. TypeError: cannot unpack non-iterable int object查找指定文件夹下指定文件类型的数量
  9. win7 安装 vmware出错: failed to create the requested registry key key installer error 1021 的解决办法。...
  10. 谷歌浏览器怎么关闭硬件加速?
  11. 你目前在用的 RSS 服务还满意吗,赶紧进来手把手教你自建一个私有的 RSS 服务器!...
  12. STM32 I2C驱动0.96寸OLED屏
  13. 03SpringMVC的使用
  14. Revit二次开发入门相关安装和配置
  15. mysql mybatis分表查询_mybatis 自动分表
  16. 笔记本外接显示器闪烁问题
  17. 网口调试方式以及性能测试iperf |CSDN创作打卡
  18. [转]信息安全相关理论题(六)
  19. python学习之美多商城(一):web项目的常见商业模式、开发流程
  20. A8 CPRS结构

热门文章

  1. java让电脑死机怎么办,win7系统Java活动脚本出错导致电脑死机的解决方法
  2. 彻底解决WebView_flutter自带的边框无法去除问题
  3. RN拆包实践的一些经验教训
  4. 我的Android进阶之旅------直接拿来用!最火的Android开源项目
  5. win10同账号多人远程破解
  6. 3D手办设备全彩彩色打印图像采集拍照拍摄设备相机矩阵
  7. 27.openssl编程——OCSP
  8. 黑苹果NVIDIA显卡驱动程序【 WebDriver-387.10.10.10.40.130+支持macOS 10.13.6 High Sierra (17G8030)版本】
  9. Pandas 提取单元格中的文字并进行切片处理
  10. DWDM 与宽带IP技术