图问题中的流塑法筛选法调整堆立论问题

上传人:沈*** 文档编号:157958955 上传时间:2022-10-02 格式:PPT 页数:12 大小:401.04KB
收藏 版权申诉 举报 下载
图问题中的流塑法筛选法调整堆立论问题_第1页
第1页 / 共12页
图问题中的流塑法筛选法调整堆立论问题_第2页
第2页 / 共12页
图问题中的流塑法筛选法调整堆立论问题_第3页
第3页 / 共12页
资源描述:

《图问题中的流塑法筛选法调整堆立论问题》由会员分享,可在线阅读,更多相关《图问题中的流塑法筛选法调整堆立论问题(12页珍藏版)》请在装配图网上搜索。

1、8.2 图问题中的流塑法图问题中的流塑法8.2.41 筛选法调整堆立论问题筛选法调整堆立论问题 (RecursionRecursion)就是子程序(或函数)直接调用)就是子程序(或函数)直接调用自己或通过一系列调用语句间接调用自己,是一种自己或通过一系列调用语句间接调用自己,是一种描述问题和解决问题的基本方法。描述问题和解决问题的基本方法。有两个基本要素:有两个基本要素:确定到何时终止;确定到何时终止;大问题是如何分解为小问题的。大问题是如何分解为小问题的。8.2.41 筛选法调整堆立论问题筛选法调整堆立论问题 ,调用函数和被调用函数是同一个函数,需要,调用函数和被调用函数是同一个函数,需要注

2、意的是筛选法调整堆函数的调用层次,如果把调注意的是筛选法调整堆函数的调用层次,如果把调用筛选法调整堆函数的主函数称为第用筛选法调整堆函数的主函数称为第0 0层,进入函层,进入函数后,首次筛选法调整堆调用自身称为第数后,首次筛选法调整堆调用自身称为第1层调用;层调用;从第从第i层筛选法调整堆调用自身称为第层筛选法调整堆调用自身称为第i+1层。反之,层。反之,退出第退出第i+1层调用应该返回第层调用应该返回第i层。采用图示方法描层。采用图示方法描述筛选法调整堆函数的运行轨迹,从中可较直观地述筛选法调整堆函数的运行轨迹,从中可较直观地了解到各调用层次及其执行情况。了解到各调用层次及其执行情况。一个筛

3、选法调整堆函数的调用过程类似于多个函数的嵌套调用,只不过调一个筛选法调整堆函数的调用过程类似于多个函数的嵌套调用,只不过调用函数和被调用函数是同一个函数。为了保证筛选法调整堆函数的正确执行,用函数和被调用函数是同一个函数。为了保证筛选法调整堆函数的正确执行,系统需设立一个工作栈。具体地说,筛选法调整堆调用的内部执行过程如下:系统需设立一个工作栈。具体地说,筛选法调整堆调用的内部执行过程如下:(1 1)运行开始时,首先为筛选法调整堆调用建立一个工作栈,其结构包括值参、)运行开始时,首先为筛选法调整堆调用建立一个工作栈,其结构包括值参、局部变量和返回地址;局部变量和返回地址;(2 2)每次执行筛选

4、法调整堆调用之前,把筛选法调整堆函数的值参和局部变量)每次执行筛选法调整堆调用之前,把筛选法调整堆函数的值参和局部变量的当前值以及调用后的返回地址压栈;的当前值以及调用后的返回地址压栈;(3 3)每次筛选法调整堆调用结束后,将栈顶元素出栈,使相应的值参和局部变)每次筛选法调整堆调用结束后,将栈顶元素出栈,使相应的值参和局部变量恢复为调用前的值,然后转向返回地址指定的位置继续执行。量恢复为调用前的值,然后转向返回地址指定的位置继续执行。可读性强,而且容易用数学归纳法来证明算可读性强,而且容易用数学归纳法来证明算法的正确性,因此,它为设计算法和调试程序带法的正确性,因此,它为设计算法和调试程序带来

5、很大方便,是算法设计中的一种强有力的工具。来很大方便,是算法设计中的一种强有力的工具。但是,因为筛选法调整堆算法是一种自身调用自但是,因为筛选法调整堆算法是一种自身调用自身的算法,随着筛选法调整堆深度的增加,工作身的算法,随着筛选法调整堆深度的增加,工作栈所需要的空间增大,筛选法调整堆调用时的辅栈所需要的空间增大,筛选法调整堆调用时的辅助操作增多,因此,筛选法调整堆算法的运行效助操作增多,因此,筛选法调整堆算法的运行效率较低。率较低。问题描述:一个长度为问题描述:一个长度为n(n1)的)的升序序升序序列列S,处在第,处在第n/2个位置的数称为序列个位置的数称为序列S的中的中位数位数。两个序列的

6、中位数是他们所有元素的。两个序列的中位数是他们所有元素的升序序列的中位数。现有两个等长升序序列升序序列的中位数。现有两个等长升序序列A和和B,试设计一个在时间和空间两方面都,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列的中位数。尽可能高效的算法,找出两个序列的中位数。规模为规模为n的原问题的解与较小规模(通常是的原问题的解与较小规模(通常是n/2)的子问题的解之间具有关系:的子问题的解之间具有关系:(1)原问题的解)原问题的解只存在于其中一个只存在于其中一个较小规模的子问较小规模的子问题中;题中;(2)原问题的解与其中一个较小规模的解之间存在)原问题的解与其中一个较小规模的解之

7、间存在某种对应关系。某种对应关系。由于原问题的解与较小规模的子问题的解之间由于原问题的解与较小规模的子问题的解之间存在这种关系,所以,存在这种关系,所以,只需求解其中一个较小规模只需求解其中一个较小规模的子问题就可以得到原问题的解。的子问题就可以得到原问题的解。2022-10-2例:计算例:计算an的值,的值,应用应用层治技术层治技术得到如下计算方法:得到如下计算方法:应用应用分治法分治法得到得到an的计算方法是:的计算方法是:1122naanaannnO(log2n)O(nlog2n)-且是奇数且是奇数且是偶数且是偶数1)(1)(122)1(22naananaannn想法:想法:分别求出两个

8、序列的中位数,记为分别求出两个序列的中位数,记为a和和b;比;比较较a和和b,有下列三种情况:,有下列三种情况:a=b:则:则a即为两个序列的中位数;即为两个序列的中位数;a b:则中位数只能出现在:则中位数只能出现在b和和a之间,在序列之间,在序列A中舍弃中舍弃a之后的元素得到序列之后的元素得到序列A1,在序列,在序列B中舍弃中舍弃b之前的元素得到序列之前的元素得到序列B1;在在A1和和B1中分别求出中位数,重复上述过程,直中分别求出中位数,重复上述过程,直到两个序列中只有一个元素,则较小者即为所求。到两个序列中只有一个元素,则较小者即为所求。q基本思想:在基本思想:在有序表有序表中,中,取

9、中间记录作为比较对象,取中间记录作为比较对象,若给定值与中间记录的关键码相等,则查找成功;若给若给定值与中间记录的关键码相等,则查找成功;若给定值小于中间记录的关键码,则在中间记录的左半区继定值小于中间记录的关键码,则在中间记录的左半区继续查找;若给定值大于中间记录的关键码,则在中间记续查找;若给定值大于中间记录的关键码,则在中间记录的右半区继续查找。不断重复上述过程,直到查找成录的右半区继续查找。不断重复上述过程,直到查找成功,或所查找的区域无记录,查找失败。功,或所查找的区域无记录,查找失败。2022-10-2Page 11判定树判定树长度为长度为n的判定树的构造方法为:的判定树的构造方法

10、为:(1)当)当n=0时,判定树为空;时,判定树为空;(2)当)当n0时,判定树的根结点是有序表中序号时,判定树的根结点是有序表中序号为为mid=(n+1)/2(取地板)的记录,根结点的左子(取地板)的记录,根结点的左子树是与有序表树是与有序表r1 rmid-1相对应的判定树,根相对应的判定树,根结点的右子树是与结点的右子树是与rmid+1 rn相对应的判定树。相对应的判定树。1.low=1;high=n;/设置初始查找区间设置初始查找区间 2.测试查找区间测试查找区间low,high是否存在,是否存在,若不存在,则查找失败;若不存在,则查找失败;否则否则 3.取中间点取中间点mid=(low+high)/2;比较比较k与与rmid,有以下三种情况:,有以下三种情况:3.1 若若krmid,则,则low=mid+1;查找在右半区进行,转;查找在右半区进行,转2;3.3 若若k=rmid,则查找成功,返回记录在表中位置,则查找成功,返回记录在表中位置mid;

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!