欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    《分治策略》PPT课件.ppt

    • 资源ID:5470325       资源大小:290.49KB        全文页数:27页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《分治策略》PPT课件.ppt

    2023/7/10,1,第4讲 分治策略,2023/7/10,2,主要内容,分治法基本思想二分搜索算法合并排序算法快速排序算法线性时间选择,2023/7/10,3,4.1 分治法的基本思想,例:找伪币问题给你一个装有1 6个硬币的袋子。1 6个硬币中有一个是伪造的,并且那个伪造的硬币比真的硬币要轻一些。你的任务是找出这个伪造的硬币。为了帮助你完成这一任务,将提供一台可用来比较两组硬币重量的仪器,利用这台仪器,可以知道两组硬币的重量是否相同。,2023/7/10,4,一种方式 两两对比,找到轻者,最差比较8次另外一种1)将16个硬币分成A、B两半;2)将A放仪器的一边,B放另一边,如果A袋轻,则表明伪币在A,解子问题A即可,否则,解子问题B。,2023/7/10,5,例25 金块问题,有一个老板有一袋金块。每个月将有两名雇员会因其优异的表现分别被奖励一个金块。按规矩,排名第一的雇员将得到袋中最重的金块,排名第二的雇员将得到袋中最轻的金块。根据这种方式,除非有新的金块加入袋中,否则第一名雇员所得到的金块总是比第二名雇员所得到的金块重。如果有新的金块周期性的加入袋中,则每个月都必须找出最轻和最重的金块。假设有一台比较重量的仪器,我们希望用最少的比较次数找出最轻和最重的金块。,2023/7/10,6,假设袋中有n 个金块。通过n-1次比较找到最重的金块。找到最重的金块后,可以从余下的n-1个金块中用类似的方法通过n-2次比较找出最轻的金块。这样,比较的总次数为2n-3。n2时,识别出最重和最轻的金块,做一次比较。n2时,第一步,把这袋金块平分成两个小袋A和B。第二步,分别找出在A和B中最重和最轻的金块。HA 与LA,HB 和LB。第三步,通过比较HA 和HB,可以找到所有金块中最重的;通过比较LA 和LB,可以找到所有金块中最轻的。,2023/7/10,7,复杂度,设c(n)为比较次数。假设n是2的幂。当n=2时,c(n)=1;当n2时,c(n)=2c(n/2)+2。当n是2的幂时,可知c(n)=3n/2-2。使用分而治之方法比逐个比较的方法少用了2 5的比较次数。,2023/7/10,8,4.1 分治法的基本思想,分而治之方法与软件设计的模块化方法非常相似。为了解决一个大的问题,可以:把它分成两个或多个更小的问题;分别解决每个小问题;把各小问题的解答组合起来,即可得到原问题的解答。小问题通常与原问题相似,可以递归地使用分而治之策略来解决。,2023/7/10,9,原问题,子问题1,子问题2,子问题k,子问题1,子问题2,子问题3,相同类型,不可再分,直接求解,2023/7/10,10,分治法流程,用P表示问题的输入。Divide-and-Conquer(P)if(|P|=n0)Adhoc(P);divide P into smaller subinstances P1,P2,Pk;for(i=1;i=k;i+)yi=Divide-and-Conquer(Pi);return Merge(y1,yk);,判断输入规模p是否足够的小,解该规模问题的函数,分割函数,分治解决,合并得到最后结果,2023/7/10,11,问题,应把原问题分为多少个子问题才较适宜?每个子问题是否规模相同或怎样才为适当?,2023/7/10,12,分治法计算效率,原问题规模n分成k个子问题,每个规模n/m设分解阈值n01,Adhoc解规模为1的问题耗费1个单位时间设分解原问题及用Merge将k个子问题的解合并需要f(n)个单位时间T(n)表示分治法的解规模为|P|=n的问题所需的计算时间,2023/7/10,13,计算时间分析,由上可得 O(1)n=1T(n)=kT(n/m)+f(n)n1解上式得到,2023/7/10,14,4.2 二分搜索技术,给定已排好序的n个元素a0:n-1,现要在这n个 元素中找出一特定元素x,找到则将其位置赋于变 量j中,否则j置-1。,如果只允许进行元素间的比较而不允许对它们进行其它的运算,则所设计的算法称为以比较为基础的算法。,问题提出,2023/7/10,15,1 线性搜索,线性搜索二元比较树如下:,任何以比较为基础的搜索算法的执行过程都可以用一棵二元比较树来描述。每次可能的比较用一个内顶点表示,对应于不成功的结果有一个外顶点与之对应。,An-1xAn,XAn,2023/7/10,16,线性算法复杂度,该方法没有很好利用已经排好序这个条件,顺序搜索方法平均需要 O(n)次比较。,2023/7/10,17,2 二分搜索方法,基本思想 取一个中间元素做比较元素,如果x等于它,则结束,如果小于,去左半部查找,否则去右半部搜索将问题表示为:I=(n,a1,an,x)选取一个下标k,可得到三个子问题:I1=(k-1,a1,ak-1,x)I2=(1,ak,x)I3=(n-k,ak+1,an,x),ak,2023/7/10,18,二元比较树,含9个元素的情况,2023/7/10,19,二元比较树,2023/7/10,20,例2-6 在9,12,15,27,39中分别查找27,12,14,mid=(left+right)/2=(0+4)/2=2,mid=(3+4)/2=3,查找27成功返回3,leftright,查找12成功返回1,left=right,查找14失败返回-1,leftright,2023/7/10,21,template int BinarySearch(T a,const T/未找到x,n-1,0,left=right,(left+right)/2,middle+1,middle 1,2023/7/10,22,例:-15,-6,0,7,9,23,54,82,101中查找101,-14,82,X=101Low high mid0 8 45 8 67 8 78 8 8 OK,X=-14Low high mid0 8 40 3 10 0 0 0 NO,X=82Low high mid0 8 45 8 67 8 7 OK,2023/7/10,23,二分搜索所需的空间和时间,所需空间存放数组a的地址,还有left,right,middle,及x的地址需要存储,共10字节计算时间成功检索的最好情况和不成功检索的最好情况成功检索的平均情况和不成功检索的平均情况成功检索的最坏情况和不成功检索的最坏情况,2023/7/10,24,成功检索最好情况和不成功检索最好情况,成功检索共有n种不成功检索共有n+1种,2023/7/10,25,由图可见,当x在数组A中时,算法在圆形顶点结束;不在A中时,算法在方形顶点结束。因为23924,所以比较树的叶顶点都在4或5级上出现。因而元素比较的最多次数为4。一般地有:当 时,一次成功的折半搜索至多做k次比较,而一次不成功的折半搜索或者做k-1次比较,或者做k次比较。,2023/7/10,26,二分搜索的时间复杂度,最坏情况下的成功检索计算时间(logn)最坏情况下的不成功检索计算时间(logn)最好情况下的成功检索计算时间(1)最好情况下的不成功检索计算时间(logn)每种不成功的检索时间都为(logn),2023/7/10,27,二分检索在各种情况下的检索时间,

    注意事项

    本文(《分治策略》PPT课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开