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

    算法设计与分析变治法2021最全课件.ppt

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

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

    算法设计与分析变治法2021最全课件.ppt

    1,算法设计与分析变治法,2,(1)实例化简同样问题 6.1 预排序 6.2 高斯消去法 6.3 平衡查找树AVL树(2)改变表现同样实例 6.3 2-3树 6.4 堆和堆排序 6.5 霍纳法则和二进制幂(3)问题化简另一问题 6.6,3,6.1 预排序,列表是有序的话,许多关于列表的问题更容易求解。因此很多问题需要先排序,则该问题的时间效率依赖于排序算法的效率。回忆前面所学的排序算法:插入排序最差(n2)平均(n2)最优(n)快速排序最差(n2)平均(1.38nlog2n)最优(nlog2n)合并排序最差(nlog2n)选择排序(n2)冒泡排序(n2),4,效率若有n个关键字,构成一棵全部由3节点构成的满树,n与h之间的关系为?5 堆中删除元素的算法3 自底向上构造法的时间效率所能想到的求模式的方法:3 最差情况是一种什么情况?高斯消去法的现代商业实现是以LU分解为基础的。1 二叉查找树的特点是?一般的线性方程组是指如下形式的方程组:考虑一种既能够保留经典二叉查找树的好特性/输入:数组A模式:指数组列表中出现次数最多的值。/输出:方程组的增广矩阵等价的上三角矩阵在最差情况下查找和插入的效率属于(logn)针对随机文件的实验指出,堆排序比快速排序运行的慢,但和合并排序还是有竞争力的。7,6,5,2两种构造方法的效率对于随机键的列表构造的AVL树,得到它的平均高度的精确公式被证明是有难度的。,例1、检验数组中元素的唯一性 蛮力法如何做?时间效率是多少?如果先排序,则如何检查元素的唯一性?只需检查相互紧挨的元素。PresortElementUniqueness(A0.n-1)/先对数组排序再验证唯一性/输入:数组A/输出:若A没有相等的元素,返回“true”,否则返回“false”.对数组排序;for i=0 to n-2 do if Ai=Ai+1 return false return true,整个过程时间效率是多少?,5,预排序,例2、模式计算模式:指数组列表中出现次数最多的值。如5,1,5,7,6,5,7中5是模式 所能想到的求模式的方法:用辅助列表列出所有元素及其出现频率。时间效率如何分析?采用排序的思想先排序后计算相邻接次数最多的等值元素。时间效率如何分析?,6,思考:预排序还可以用在什么方面?查找分析顺序查找和先排序再查找的时间效率如果要在同一个列表中进行多次查找,在排序上花费时间是值得的。课堂练习:采用合并排序为预排序,折半查找,要做多少次查找才能使得对一个由n个元素构成的数组所做的预排序是有意义的。,7,预排序的其他应用:对点排序,拓扑排序课堂练习:P1534,8,6.2 Gauss消去法,科学计算中通常需要解多个变量的方程组,这些方程组当中最简单的是线性方程组,也就是变量的次数均为1次的。求解线性方程的方法 有利用高斯消元的直接法以及迭代法。体现的变治的思想:将方程组变成一个具有特殊性质的方程组(上三角矩阵),9,1、高斯消元法,一般的线性方程组是指如下形式的方程组:,10,高斯消元法,分消元过程和回代过程。消元过程将原方程组变为上三角方程组,回代过程得到方程组的解。,11,高斯消元法举例:,12,高斯消元法的伪代码,GaussElimination(A1.n,b1.n)/输入:系数矩阵A及常数项 b/输出:方程组的增广矩阵等价的上三角矩阵 for i=1 to n do Ain+1=bi for i=1 to n-1 do for j=i+1 to n do for k=i to n+1 do Ajk=Ajk Aik*Aji/Aii,13,高斯消元法的效率分析基本操作:乘法 执行次数:易见,三重循环 C(n)(n3),14,2、LU分解法,高斯消去法的现代商业实现是以LU分解为基础的。,15,系数矩阵为,下三角矩阵L,由主对角线上的1以及在高斯消去过程中行的乘数构成,上三角矩阵U是消去的结果,可观察出两个矩阵的乘积LU等于A,16,记原方程组为 A X=b A=LU 则原方程组为LUX=b其求解转化为两个三角形方程组的求解:LY=b 下三角方程组 UX=Y 上三角方程组,17,LU分解法,与LY=b,UX=Y对应的方程组如下:,易得:(y1,y2,y3)=(1,3,-2),(x1,x2,x3)=(1,0,-1),18,评价,1 一旦的到矩阵A的LU分解,无论对于什么样的右边向量b,我们都可以对方程组Ax=b求解,每次求一个。2 LU分解不需要额外的存储空间,19,3、计算矩阵的逆,逆矩阵的定义:,求矩阵 A 的逆矩阵,如何转换,20,计算矩阵的逆,求矩阵 A 的逆矩阵,转化为求解n个方程组 A Xj=bj 其中,bj是单位矩阵的第j列,而Xj 则是逆矩阵的第j列。,21,3、计算矩阵的行列式,n阶矩阵的行列式的计算由递归公式定义:其中,n=1时,det A=a11,若j为奇数,sj=1,若j为偶数,sj=-1例如n=3的情形如下:,22,计算矩阵行列式,按照定义计算高阶行列式是不可能的。可利用高斯消元法:矩阵A的行列式=消元后上三角矩阵的行列式=对角线上元素之乘积。例如,上式中 det A=2 3 2=12,23,课堂练习:考虑高斯消去法的反向替换的运行时间效率类型是多少?,24,6.3 平衡查找树,二叉查找树是一种重要的数据结构看书p162-163,思考下列问题:1 二叉查找树的特点是?2 在平均情况下,查找,插入,删除的效率是?3 最差情况是一种什么情况?4 最差情况效率是多少?,25,把一个集合变换成一棵二叉查找树是改变表现技术的一个实例好处是:在平均情况下,查找,插入,删除的效率是(logn)最差情况下,(n),退化成线性的情况,26,考虑一种既能够保留经典二叉查找树的好特性又能够避免它退化到最差情况的数据结构两种方法:实例化简:不平衡二叉查找树变为平衡的形式改变表现:允许一棵查找树的单个节点中不止包含一个元素。,27,看书p163,p166回忆及思考下面问题1 AVL树的概念2 AVL树查找效率与什么相关?3 最差情况,28,AVL树的效率评价,n个节点的AVL树的高度h对于随机键的列表构造的AVL树,得到它的平均高度的精确公式被证明是有难度的。实验表明,这个高度大约是1.01log2n+0.1在平均情况下,查找一棵AVL树需要的比较次数和用折半查找一个有序数组是几乎相同的。在最差情况下查找和插入的效率属于(logn)缺点:频繁的旋转,维护平衡以及总体上的复杂性,29,树,2-3树是一种特殊的高度平衡树,允许结点最多包含两个关键字。两类结点:2-node、3-node。树中所有叶子必须位于同一层。,30,2-3树的搜索与插入,看书理解1 搜索算法p1672 插入算法p168,31,搜索算法如果待搜索树的根是2-node型结点,搜索操作与二叉搜索树搜索操作相同;如果待搜索树的根是3-node型结点,最多只需要比较两次就可以知道是搜索成功还是需要向3棵子树继续递归搜索。,32,插入算法:当一个结点x需要插入到2-3树中的时候,总是根据它的大小关系,把其插入到叶结点中。插入前首先调用搜索算法找到待插入的叶结点,如果该叶结点是2-node型的,则直接插入即可;如果该叶结点是3-node型的,在按序插入到叶结点后,需要把叶结点拆分(因为插入后使得叶结点的关键字个数为3,不满足2-3树的要求)。拆分过程首先在三个关键字挑选值在中间的关键字,提到上一层,或者作为新结点,或者插入原来的内结点中;关键字最小的作为左子树,关键字最大的作为右子树。如果内结点的插入导致结点过大,按照上述规则继续拆分。,33,2-3树的效率分析,操作效率与什么相关?树高h若有n个关键字,构成一棵全部由2节点构成的满树,n与h之间的关系为?若有n个关键字,构成一棵全部由3节点构成的满树,n与h之间的关系为?所以高度的范围是:无论在最差还是平均,查找,插入和删除时间效率都是对数类型,34,6.4 堆和堆排序,堆的概念看书p170-p173回忆及理解1 堆的定义2 堆的构建方法3 自底向上构造法的时间效率4 自顶向下构造法的时间效率5 堆中删除元素的算法,35,1 堆的定义堆是一棵二叉树,树中节点包含键,满足下面两个条件:树的形状:二叉树父母:每个节点的键都要大于或等于它子女的键。,36,2自底向上构造法,首先把数组按序填充到堆中各个结点然后按照自下而上,从右至左的顺序,从最后的父母节点开始,到根为止,检查这些节点的值是否都满足子结点比父结点小的约束条件。如果不满足则调换父子结点的位置,然后再检查在新的位置上,是不是满足父母优势要求。用自底向上法为1,8,6,5,3,7,4构造一个堆,37,2自底向上构造法,最坏情况每个位于树的第i层的键都会移动到叶子层h中移动到下一层需要进行几次比较?两次。位于第i层的键移到叶子层h需要几次比较?需要2(h-i)次键值比较。因此有下式:结论:一个规模为n的堆只需不到2n次比较就能构造完成,38,3 自顶向下构造法,将包含新键K附加在当前堆的最后一个叶子后面将新键和父母比较交换这个键向上走,直到它不大于它的父母为止用自顶向下法为1,8,6,5,3,7,4构造一个堆思考一个新键插入i个元素构成的堆的比较次数N个规模问题的比较次数,39,4 堆结点的删除,只考虑删除根中的键把待删除结点与堆中最后一个键K对调。执行删除操作并把堆的大小减一。对删除后的堆进行调整直到满足堆的约束条件。删除的效率分析:取决于交换和规模减一后,树的堆化所需的键值比较次数。因为键值比较次数不可能超过堆的高度的两倍,删除的时间也是属于对数类型的。,40,堆排序,堆排序主要包括两个步骤:(1)对于给定的数组构造相应的堆。(2)对所构造的堆执行n-1次删除堆的根结点的操作,把删除得到的结点保存在给定数组中。,41,堆排序举例,用堆排序对数组2,9,7,6,5,8排序步骤1:构造堆 2,9,7,6,5,8 2,9,8,6,5,7 2,9,8,6,5,7 9,2,8,6,5,7 9,6,8,2,5,7,42,堆排序举例,步骤2:删除根结点 9,6,8,2,5,7 7,6,8,2,5 8,6,7,2,5 5,6,7,2 7,6,5,2 2,6,5 6,5,2 5,2 2,43,堆排序效率分析,1 构造堆的效率是多少?O(n)2 删除最大键及后续的效率O(nlogn)评价:堆排序不需任何额外的存储空间针对随机文件的实验指出,堆排序比快速排序运行的慢,但和合并排序还是有竞争力的。,44,6.3-6.4小结,实例化简-AVL树 查找效率最坏 平均改变表现-2-3树 查找效率最坏,平均 堆 两种构造方法的效率 删除的效率 堆排序 效率,45,6.5 Horner法则和二进制幂,法则 计算n次多项式的值的算法。例如,n=4,直接计算,需要多少次乘法?4+3+2+1=10=n(n-1)/2次乘法,用如下Horner/秦九韶算法只需要4=n次乘法:,46,当x=3时,计算p(x),霍纳法则的有趣特性该算法在计算p(x)在某些点x0上的值所产生的中间数字恰好可以作为p(x)除以x-x0的商的系数,而算法的最后结果,除了等于p(x0)以外,还等于这个除法的余数。即,当x0=3时 p(x)=2x4-x3-3x2+x-5 除以x-3为2x3+5x2+18x+55 和 160,47,二进制幂 计算an的算法,有两种方法:,从左到右逐位扫描算法:例求a13,13=1101 从右到左逐位扫描算法:例求a13,13=1101,48,6.6 问题化简,问题化简是一个重要的解题策略如解析几何的根本思想是把几何问题化为代数问题,49,原问题:求能够被m和n整除的最小整数记为lcm(m,n)常用算法:m和n所有公共质因数乘以m的不在n中的质因数,再乘以n不在m中的质因数 24=2223 60=2235 lcm(24,60)=(223)25=120缺陷:需要连续素数的表,50,关联 m和n的最大公约数gcd(m,n)是m和n所有公共质因子的积。并且lcm(m,n)=mn/gcd(m,n)问题化简 转换为求最大公约数gcd(m,n)的高效的欧几里德算法,51,计算图中的路径数,原问题:计算图中两个顶点之间的路径数量问题化简:可利用邻接矩阵,可以证明:图G中顶点vi到顶点vj之间长度为k的路径数量等于AK的第(i,j)个元素,其中A是图G的邻接矩阵。,52,优化问题的化简,原问题:求函数的最大值或最小值 问题化简:已知函数的最大值的算法 求其最小值 min f(x)=-max-f(x)函数最优化:把最优化问题转化为函数极值问题,再由 f(x)=0求临界点。,53,线性规划,许多决策优化问题可以转化为线性规划问题。例子:进行1亿美元的投资。该笔钱分成3种类型的投资:股票、债券和现金。预期收益各是10%,7%,3%。并且投资在股票上的资金不能超过债券的1/3,现金投资至少相当于股票和债券投资总额的25%。这笔投资如何才能最大化收益?,54,线性规划问题是一个多变量线性函数的最优化问题。这些变量要满足的约束是以线性等式或线性不等式的形式出现。可以为各种应用建模,如排班,交通和通信网络规划,石油勘探和提纯。解线性规划问题的算法:单纯形法 Karmarkar算法,55,整数线性规划问题:把变量的值限定在整数。目前还没有一个已知的多项式级的求解算法。,56,简化为图论问题,许多问题用图表示后,求解很容易。通常用图的顶点表示问题的状态,边表示状态之间的可能转变。表示问题的图称为状态空间图。例如过河问题:一个农夫希望用一条小船把一只狼,一头羊,一篮白菜从河的北岸渡到河的南岸,由于船小只能够容纳人狼羊菜中的两个。需要考虑的约束条件是:在没有人的情况下,狼和羊不能在一起,羊和白菜不能单独在一起。求解一个渡船的方案,把狼、羊、白菜都运过去。,57,对过河问题,画出人、狼、羊、菜的状态空间图后即可以发现有两条路径,这两条路径就是问题的两个解。,58,过河问题,解:用四维0-1向量表示(人,狼,羊,菜)在河西岸的状态(在河西岸则分量取1,否则取0),共有24=16 种状态.在河东岸的状态类似记作.由题设,状态(0,1,1,0),(0,0,1,1),(0,1,1,1)是不允许的,从而对应状态(1,0,0,1),(1,1,0,0),(1,0,0,0)也是不允许的.以可允许的10个状态向量作为顶点,将可能互相转移的状态用线段连接起来构成一个图.根据此图便可找到渡河方法.,59,(1,1,1,1)(1,1,1,0)(1,1,0,1)(1,0,1,1)(1,0,1,0)(0,0,0,0)(0,0,0,1)(0,0,1,0)(0,1,0,0)(0,1,0,1),(0,1,0,1)(0,1,0,0)(0,0,1,0)(0,0,0,1)(0,0,0,0)(1,0,1,0)(1,0,1,1)(1,1,0,1)(1,1,1,0)(1,1,1,1)河西=(人,狼,羊,菜)河东=(人,狼,羊,菜),将10个顶点分别记为A1,A2,A10,则渡河问题化为在该图中求一条从A1到A10的路.从图中易得到两条路:A1 A6 A3 A7 A2 A8 A5 A10;A1 A6 A3 A9 A4 A8 A5 A10.,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开