算法--打印.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法设计与分析 总复习 填空题:40分(基础题) 简答题:20分(课件) 算法题:40分(贪心 动态规划 回溯法 分支限界) 90% 总复习课件+作业+编程题 10% 贪心+动态规划+分治 第一章:绪论 算法的定义和特征 (1)输入(2)输出(3)有限性(4)确定性(5)能行性 算法的评价的标准 1)正确性(Correctness) 2)效率(Efficiency) 3)可读性/简明性 4)最优性 1.3标准复杂性函数的渐近时间复杂度之间的关系 O(1)O(logn)O(n)O(nlogn)O(n2)O(n3)O(2n)O(n!)O(nn) 多项式时间阶 指数时间阶 定义:有效算法 以多项式时间为限界的算法称为有效算法。 第二章:分治算法 ★考试要求: ※给出方法,或者代码。 ※T(n) (回到分治法的PPT,这里很难的)(二分 T(n)= T(n/2)+1) ※解出T(n) ★分治算法总体思想 分治法是一个递归地求解问题的过程 分治法在每一层递归上有三个步骤 ▲ 分解: 通过某种方法,将原问题分解成若干个规模较小,相互独立,与原问题形式相同的子问题 ▲ 解决: 若子问题规模小到可以直接解决(称为基本问题), 则直接解决, 否则把子问题进一步分解,递归求解 ▲ 合并: 通过某种方法,将子问题的解合并为原问题的解 ★分治法的适用条件 该问题的规模缩小到一定的程度就可以容易地解决; 该问题可以分解为若干个规模较小的相同问题 利用该问题分解出的子问题的解可以合并为该问题的解; 该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子问题。 分治法所能解决的问题一般具有以下几个特征 特征1:是绝大多数问题都可以满足的, 因为问题的复杂性一般是随问题的规模增加而增加的 特征2 :是分治法的前提, 也是大多数问题可以满足的 特征 3 :是分治法的使用的关键, 能否利用分治法完全取决于能否把子问题的解合并为原问题的解 特征4:是应用分治法的前提,此特征反映了递归思想的应用 第三章:动态规划算法 ★考试要求: ※状态方程,写明白。 ※填表。 ※答案。 ★与分治法的异同点 动态规划的思想实质是分治思想和解决冗余。 与分治法类似的是,将原问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。 与分治法不同的是,经分解的子问题往往不是互相独立的。若用分治法来解,有些共同部分(子问题或子子问题)被重复计算了很多次。 ★求解步骤 1、找出最优解的性质,并刻画其结构特征; 2、递归地定义最优值(写出动态规划方程); 3、以自底向上的方式计算出最优值; 4、根据计算最优值时记录的信息,构造最优解。 ★适用条件 动态规划法的有效性依赖于问题本身所具有的两个重要性质 最优子结构(最优化策略):当问题的最优解包含了其子问题的最优解时,称该问题具有最优子结构性质。 重叠子问题:在用递归算法自顶向下解问题时,每次产生的子问题并不总是新问题,有些子问题被反复计算多次。动态规划算法正是利用了这种子问题的重叠性质,对每一个子问题只解一次,而后将其解保存在一个表格中,在以后尽可能多地利用这些子问题的解。 第四章:贪心算法 ★考试要求: ※给出方法(比如排序)。 ※每一步的选择。 ※给出答案。 ★贪心算法求解的问题一般具有2个重要的性质:贪心选择性质和最优子结构性质 所谓贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。这是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。 ★贪心算法和动态规划算法都要求问题具有最优子结构性质,这是2类算法的一个共同点。 ★贪心算法和动态规划算法的区别: 背包问题(小数背包问题) 0-1背包问题 第五章:回溯算法 ★回溯法的基本步骤: (1)针对所给问题,定义问题的解空间; (2)确定易于搜索的解空间结构; (3)以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。 ★常用剪枝函数: (1)用约束函数在扩展结点处剪去不满足约束的子树; (2)用限界函数剪去得不到最优解的子树。 -搜索从开始结点(根结点)出发,以DFS搜索整个解空间。 -开始结点成为一个活结点,同时也成为当前的扩展结点。在当前的扩展结点处向纵深方向移至一个新结点,并成为一个新的活结点,也成为当前扩展结点。 -如果在当前的扩展结点处不能再向纵深方向扩展,则当前扩展结点停止扩展。 -此时,应往回移动(回溯)至最近的一个活结点处,并使这个活结点成为当前的扩展结点;直至找到一个解或全部解。 第六章:分支限界法 -在分支限界法中,

文档评论(0)

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

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

1亿VIP精品文档

相关文档