- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 递归与分治策略 2.1 递归的概念 2.2 分治的基本思想 2.3 二分搜索技术 2.4 合并排序 本章主要知识点: 算法总体思想 分治法的设计思想是,将一个难以直接解决的大问题,分割成一些规模较小的问题,以便各个击破,分而治之。 如果由分治法产生的子问题是原问题的较小规模, 则可以用递归技术解决。 将要求解的较大规模的问题分割成k个更小规模的子问题。 算法总体思想 n T n/2 T n/2 T n/2 T n/2 T n 对这k个子问题分别求解。如果子问题的规模仍然不够小,则再划分为k个子问题,如此递归的进行下去,直到问题规模足够小,很容易求出其解为止。 算法总体思想 将求出的小规模的问题的解合并为一个更大规模的问题的解,自底向上逐步求出原来问题的解。 n T n n/2 T n/4 T n/4 T n/4 T n/4 n/2 T n/4 T n/4 T n/4 T n/4 n/2 T n/4 T n/4 T n/4 T n/4 n/2 T n/4 T n/4 T n/4 T n/4 算法总体思想 将求出的小规模的问题的解合并为一个更大规模的问题的解,自底向上逐步求出原来问题的解。 n T n n/2 T n/4 T n/4 T n/4 T n/4 n/2 T n/4 T n/4 T n/4 T n/4 n/2 T n/4 T n/4 T n/4 T n/4 n/2 T n/4 T n/4 T n/4 T n/4 2.1 递归的概念 直接或间接地调用自身的算法称为递归算法。用函数自身给出定义的函数称为递归函数。 由分治法产生的子问题往往是原问题的较小模式,这就为使用递归技术提供了方便。在这种情况下,反复应用分治手段,可以使子问题与原问题类型一致而其规模却不断缩小,最终使子问题缩小到很容易直接求出其解。这自然导致递归过程的产生。 分治与递归像一对孪生兄弟,经常同时应用在算法设计之中,并由此产生许多高效算法。 下面来看几个实例。 2.1 递归的概念 例1 阶乘函数 阶乘函数可递归地定义为: 边界条件 递归方程 边界条件(非递归定义)与递归方程是递归函数的二个要素,递归函数只有具备了这两个要素,才能在有限次计算后得出结果。 2.1 递归的概念 例4 排列问题 设计一个递归算法生成n个元素 r1,r2,…,rn 的全排列。 设R r1,r2,…,rn 是要进行排列的n个元素,Ri R- ri 。 集合X中元素的全排列记为perm X 。 ri perm X 表示在全排列perm X 的每一个排列前加上前缀得到的排列。R的全排列可归纳定义如下: 当n 1时,perm R r ,其中r是集合R中唯一的元素; 当n 1时,perm R 由 r1 perm R1 , r2 perm R2 ,…, rn perm Rn 构成。 2.2 分治法的基本思想 分治法所能解决的问题一般具有以下几个特征: 该问题的规模缩小到一定的程度就可以容易地解决; 该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质 利用该问题分解出的子问题的解可以合并为该问题的解; 该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子问题。 因为问题的计算复杂性一般是随着问题规模的增加而增加,因此大部分问题满足这个特征。 这条特征是应用分治法的前提,它也是大多数问题可以满足的,此特征反映了递归思想的应用 能否利用分治法完全取决于问题是否具有这条特征,如果具备了前两条特征,而不具备第三条特征,则可以考虑贪心算法或动态规划。 这条特征涉及到分治法的效率,如果各子问题是不独立的,则分治法要做许多不必要的工作,重复地解公共的子问题,此时虽然也可用分治法,但一般用动态规划较好。 分治法的适用条件: 分治法的复杂性分析: 一个分治法将规模为n的问题分成k个规模为n/m的子问题去解。设分解阀值n0 1,且adhoc解规模为1的问题耗费1个单位时间。再设将原问题分解为k个子问题以及用merge将k个子问题的解合并为原问题的解需用f n 个单位时间。用T n 表示该分治法解规模为|P| n的问题所需的计算时间,则有: 通过迭代法求得方程的解: 注意:递归方程及其解只给出n等于m的方幂时T n 的值,但是如果认为T n 足够平滑,那么由n等于m的方幂时T n 的值可以估计T n 的增长速度。通常假定T n 是单调上升的,从而当mi≤n mi+1时,T mi ≤T n T mi+1 。 2.3 二分搜索技术 分析:如果n 1即只有一个元素,则只要比较这个元素和x就可以确定x是否在表中。因此这个问题满足分治法的第一个适用条件 分析:比较x和a的中间
您可能关注的文档
最近下载
- 二维液相色谱在中药分析的应用.pdf VIP
- 2025加强党的作风和纪律建设PPT学习课件.pptx VIP
- 黄燕铭荐阅二:公司研究基本框架.pdf VIP
- 下学期高一生物人教版必修2:6.3.2隔离在物种形成中的作用(16张PPT)(含音频+视频).pptx VIP
- 聊天的时候对方撤回消息,一招让你照样能看.pdf VIP
- 煤制甲醇主要危害分析及安全生产策略.docx VIP
- 绿色化工技术在化学工程与工艺中的应用研究.docx VIP
- 高一化学(必修一)离子反应练习题(含答案解析).docx VIP
- 改性壳聚糖对染料废水的脱色研究 毕业论文.doc VIP
- 铝合金门窗方案设计ppt模板.pptx
原创力文档


文档评论(0)