- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
复习
递归:
定义、递归算法的效率分析(时间的递推式)
蛮力法:
定义:
蛮力法是一种简单直接的解决问题的方法,常常直接基于问题本身设计算法。可以用“直接干吧!”来描述蛮力法策略,通常是最容易想到和采用的一种简单直接的算法设计策略。
特点:1.算法设计较为简单直接,相对容易;
通常,算法效率不高。因此,高效算法一般很少来自于蛮力法。
可以解决广泛领域的各种问题,几乎是唯一一种解决各种问题的
一般性方法。常用于一些非常基本而又十分重要的算法。比如:
计算n个数的和;求一个列表的最大元素,等等。
对于一些重要的算法(如排序、查找、矩阵乘法、字符串匹配),
蛮力法可以产生一些合理算法,多少具备一些实用价值,且并不限制问题的规模。
5对于规模不大的问题,蛮力法的计算速度可以接受时,设计一个
高效算法所花费的代价很可能不值得。(人力成本,算法复杂度)
6.蛮力法可为研究和教学服务,以它作为尺度,衡量该问题的其他
算法的效率。
例:选择排序、冒泡排序、顺序查找、字符串匹配、穷举查找(穷举查找是一种简单的蛮力法。)等、
分治法:
定义:
分治法是著名的通用算法设计技术,很多非常有效的算法实际上是这个通用算法的特殊实现。基本思想符合人们在解决复杂问题时,常常将其从大到小逐步分解,进而将较易求解的小问题解合并得到原问题的解。这即是分治法”的分而治之的思想。
分解原问题规模为较小的子问题,子问题最好有相同规模;
求解子问题;(1、2步“分解一求解”过程通常是递归的,直到子问题可简单求解为止)
合并子问题的解,得到原问题的解(必要的话)。
效率分析:
建立递归算法的递推式并求解得到增长函数的增长率类型:
分治法运算时间的通用分治递推式:
一个规模n的问题,每次被分为a个子问题,每个子问题规模n/b
(上例:a=2,b=2)。为简化分析,假定n是b的乘方即n=bk
k=1,2,3,...,通用分治递推式如下:
\c,nt
T(n)或 「
\aT(nlb)+f(n),nt
r
c:子集(规模为tr)求解时间(常量);(时间:基本操作数)
f(n):子集分解和子集解合并的时间。(本例比较1次即f(n)=1)解递推式,得到时间效率(主定理):若:
f(n)e?(nd),d0
0(nd), abd
T(n)=0(ndlogn),a=bd
0(孩师), abd
应用例:
折半查找、合并排序、快速排序、大整数乘法、在序列A[1..n]中找最大最小元素的问题、循环锦标赛问题等
减治法:
定义:
利用给定规模与较小规模问题解之间的关系,从顶至下(递归)或从底至上(非递归)求解问题的一种方法。减治法通常分为3种:
?减常量法:常量通常为1即减1法,也有减2的(如奇偶数分别处理)
?减常因子法:常因子通常为2(减半技术)。
?减可变规模法。
例:
插入排序、深度优先与广度优先搜索、拓扑排序等
减治与分治的区别
变治法:
定义:变治法是一种通用的算法设计技术,基于变换的思想。
?:?变:把问题变得更容易求解;
?:?治:对变换后的问题求解。
变治策略有3种主要类型:
实例化简:变换为更简单的实例。如预排序。
改变表现:变换为不同表现实例。如AVL树,2-3树,堆。
问题化简:变换为另一个问题的实例。如数学建模,将具体应用问题用变量、函数、方程这样的数学对象来表达。
动态规划:
定义:把求解过程分为一系列阶段,各个阶段依次按照最优性原则计算,最后阶段计算得到最优解。包括分段、求解两大步。(不能段化的问题不能用动态规划法求解)
动态的含义:
求解算法施加的状态是变化的。当前状态只与其直接前趋状态有关,对其直接前趋状态施加求解算法,成为当前状态。
最优性原则(PrincipleofOptimality)
一个最优问题任何实例的最优解,是由该实例的子实例的最优解组成的。子实例组成父实例,父实例分解为子实例。
动态规划法的特点:
分阶段(级)决策。对最优化问题,用最优性原则设计。
一般采用自顶向下分析(规模减小),自底向上计算(规模增加)。计算过程是一级一级(一阶段一阶段)地向前推进,直到最终状态。
动态规划算法的基本要素:
最优子结构性质和重叠子问题。
最优子结构性质:
问题的最优解包含着它的子问题的最优解。即不管前面的策略如何,此后的决策必须是基于当前状态(由上一次决策产生)的最优决策。
重叠子问题:
在用递归算法自顶向下解问题时,每次产生的子问题并不总是新问题,有些问题被反复计算多次。对每个子问题只解一次,然后将其解保存起来,以后再遇到同样的问题时就可以直接引用,不必重新求解。
解决问题的基本特征
动态规划一般解决最值(最优,最大,最小,最长……)问题;
动
您可能关注的文档
最近下载
- 急性左心衰竭的临床表现及处理原则.pptx VIP
- 1200PLC+汇川PN伺服报文3使用方法详解.docx VIP
- 高标准农田项目施工部项目管理班子的人员岗位职责工.docx VIP
- 苏教版(2024版)七年级上册生物期末复习知识点清单.docx VIP
- 基于项目的温室气体减排量评估技术规范 太阳能热利用 编制说明.pdf VIP
- 2025年自动驾驶出租车(Robotaxi)商业化试点与运营模式优化报告.docx
- 石家庄铁道大学2022届毕业生质量报告.docx VIP
- 2024-2025学年小学美术一年级上册(2024)桂美版(2024)教学设计合集.docx
- Por Una Cabeza 一步之遥(总谱)Carlos Gardel曲曲谱.pdf VIP
- 量子信息与量子计算PPT课件.ppt VIP
文档评论(0)