5.1 层治法的设计思想.ppt_第1页
5.1 层治法的设计思想.ppt_第2页
5.1 层治法的设计思想.ppt_第3页
5.1 层治法的设计思想.ppt_第4页
5.1 层治法的设计思想.ppt_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、,5.1 层治法的设计思想,2020/11/11,第5章 层治法,Page 2,规模为n的原问题的解与较小规模(通常是n/2)的子问题的解之间具有关系: (1)原问题的解只存在于其中一个较小规模的子问题中; (2)原问题的解与其中一个较小规模的解之间存在某种对应关系。 由于原问题的解与较小规模的子问题的解之间存在这种关系,所以,只需求解其中一个较小规模的子问题就可以得到原问题的解。,5.1 层治法的设计思想,2020/11/11,第5章 层治法,Page 4,例:计算an的值,应用层治技术得到如下计算方法:,应用分治法得到an的计算方法是:,O (log2n),O (nlog2n),5.1 层

2、治法的设计思想,2020/11/11,第5章 层治法,Page 5,所以,通常来说,应用层治法处理问题的效率是很高的,一般是O(log2n)数量级。,层治法只对一个子问题求解,并且不需要进行解的合并。应用层治法(例如层半法)得到的算法通常具有如下递推式:,5.1 层治法的设计思想,对比分治法:,2020/11/11,第5章 层治法,Page 6,5.1 层治法的设计思想,一个简单的例子两个序列的中位数,问题描述:一个长度为n(n1)的升序序列S,处在第n/2个位置的数称为序列S的中位数 。两个序列的中位数是他们所有元素的升序序列的中位数。现有两个等长升序序列A和B,试设计一个在时间和空间两方面

3、都尽可能高效的算法,找出两个序列的中位数。,A=11, 13, 15, 17, 19, B=2, 4, 10, 15, 20,则中位数为13,想法:分别求出两个序列的中位数,记为a和b;比较a和b,有下列三种情况: a = b:则a即为两个序列的中位数; a b:则中位数只能出现在b和a之间,在序列A中舍弃a之后的元素得到序列A1,在序列B中舍弃b之前的元素得到序列B1; 在A1和B1中分别求出中位数,重复上述过程,直到两个序列中只有一个元素,则较小者即为所求。,1. 循环直到序列A和序列B均只有一个元素 1.1 a = 序列A的中位数; 1.2 b = 序列B的中位数; 1.3 比较a和b,执行下面三种情况之一: 1.3.1 若a=b,则返回a,算法结束; 1.3.2 若ab,则在序列A中舍弃a之后的元素,在序列B中舍弃b之前的元素,转步骤1; 2. 序列A和序列B均只有一个元素,返回较小者;,判定树描述折半查找的判定过程。 长度为n的判定树的构造方法为: (1)当n=0时,判定树为空; (2)当n0时,判定树的根结点是有序表中序号为mid=(n+1)/2(取地板)的记录

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论