算法分析与设计习题集答案.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法分析与设计习题集 基础篇 1、 算法有哪些特点?它有哪些特征?它和程序的主要区别是 什么? 特点:就是一组有穷的规则,它规定了解决某一特定类型 问题的 一系列运算(书上定义) 特征:输入、输出、有穷性、明确性、有效性 区别: 算法是完成特定任务的有限指令集。 程序是用计算机语言编写的写成特定任务的指令序列。 2、 算法的时间复杂度指的是什么?如何表示? 的时间复杂度是一个,它定量描述了该算法的运行时间。这是一 个关于代表算法输入 的的长度的函数。时间复杂度常用表述,不包 括这个函数的低阶项和首项系数。(百度百科) 3、 算法的空间复杂度指的是什么?如何表示? 一个的是指运行完一个程序所需内存的大小。利用的,可以对程 序的运行所需要的内存多少有个预先估计。一个执行时除了需要和存 储本身所使用的指令、常数、和输入数据外,还需要一些对数据进行 操作的工作单元和存储一些为现实计算所需信息的辅助空间。执行时 所需包括以下两部分。 (1)固定部分。这部分空间的大小与输入/输出的数据的个数多少、 数 无关。主要包括指令空间(即代码空间)、数据空间(、简单)等所占 的空间。这部分属于静态空间。 (2)可变空间,这部分空间的主要包括动态分配的空间,以及栈所 需的空间等。这部分的空间大小与有关。 一个所需的用 f(n)表示。 S(n)=O(f(n)) 其中 n 为问题的规模,S(n)表示。 4、 什么是最坏时间复杂性?什么是最好时间复杂性? 答:最坏情况时间复杂性: 最好情况时间复杂性:: I*是 DN 中使 T(N, I*)达到 Tmax(N)的合法输入;P(I)是在算法的 应用中出现输入 I 的概率 5、 什么是递归算法?什么是递归函数? 递归算法(包括直接递归和间接递归子程序)都是通过自己调用自 己,将求 问题转化成性质相同的子 问题,最终达到求解的的。递归 算法充分地利用了计算机系统内部机能,自动实现调用过程中对相关 且必要的信息的保存与恢复,从而省略了求 过程中的许多细节的描 述。【课本】 直接递归 子程序在运行完成前调用它们自己。 间接递归 子程序在运行过程中调用其它子程序,其他子程序反 过来调用这个调用子程序。 递归函数,把直接或间接地调用自身的函数称为递归函数。函数 的构建通常需要一个函数或者一个过程来完成。 网上: 答:(1)递归算法:直接或间接地调用自身的算法; (2)递归函数:用函数自身给出递归定义的函数。 6、 分治法的设计思想是什么? 将整个问题分成若干个小问题后分而治之 给定一个有 n 个输入的函数,分治策略建议将输入分为 k 个不同 的子集,1k≤n ,从而产生 k 个子问题。 当输入规模 n 取值较大时,可以将这n 个输入分成 k (1k≤n)个不 同子集合的情况下,得到 k 个不同的可独立求解的子问题,求出这些 子 问题的解之后,再用适当的方法把它们合并成整个 问题的解。这就 是分治法。如果子 问题仍然较大,可以再次使用分治策略。更精确地 说,分治策略将输入划分为与原问题同类型的 k 个子问题。许多时候, k=2 。 7、 动态规划基本步骤是什么? 答:(1)找出最优解的性质,并刻划其结构特征; (2)递归地定义最 优 ; (3)以自底向上的方式计算出最优 ;(4)根据计算最优值时得到 的信息,构造最优解。 8、 回溯法与分枝限界法之间的相同点是什么?不同之处在哪 些方面? 答:同:他们同是在问题的解空间树上搜索问题解的算法; 异:(1)求解目标:回溯法的求解目标是找出解空间树中满足 约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件 的一个解,或是在满足约束条件的解中找出在某种意义下的最优解; (2)搜索方式的

文档评论(0)

汪汪队 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档