算法设计与分析变治法2021最全课件.ppt
《算法设计与分析变治法2021最全课件.ppt》由会员分享,可在线阅读,更多相关《算法设计与分析变治法2021最全课件.ppt(60页珍藏版)》请在三一办公上搜索。
1、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个关键字,构成一棵全部由
2、3节点构成的满树,n与h之间的关系为?5 堆中删除元素的算法3 自底向上构造法的时间效率所能想到的求模式的方法:3 最差情况是一种什么情况?高斯消去法的现代商业实现是以LU分解为基础的。1 二叉查找树的特点是?一般的线性方程组是指如下形式的方程组:考虑一种既能够保留经典二叉查找树的好特性/输入:数组A模式:指数组列表中出现次数最多的值。/输出:方程组的增广矩阵等价的上三角矩阵在最差情况下查找和插入的效率属于(logn)针对随机文件的实验指出,堆排序比快速排序运行的慢,但和合并排序还是有竞争力的。7,6,5,2两种构造方法的效率对于随机键的列表构造的AVL树,得到它的平均高度的精确公式被证明是有
3、难度的。,例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是模式 所能想到的求模式的方法:用辅助列表列出所有元素及
4、其出现频率。时间效率如何分析?采用排序的思想先排序后计算相邻接次数最多的等值元素。时间效率如何分析?,6,思考:预排序还可以用在什么方面?查找分析顺序查找和先排序再查找的时间效率如果要在同一个列表中进行多次查找,在排序上花费时间是值得的。课堂练习:采用合并排序为预排序,折半查找,要做多少次查找才能使得对一个由n个元素构成的数组所做的预排序是有意义的。,7,预排序的其他应用:对点排序,拓扑排序课堂练习:P1534,8,6.2 Gauss消去法,科学计算中通常需要解多个变量的方程组,这些方程组当中最简单的是线性方程组,也就是变量的次数均为1次的。求解线性方程的方法 有利用高斯消元的直接法以及迭代法
5、。体现的变治的思想:将方程组变成一个具有特殊性质的方程组(上三角矩阵),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/
6、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),1
7、8,评价,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,计算矩阵行列式,按照定义计算高阶行列式是不可能的。可利用高斯消元法
8、:矩阵A的行列式=消元后上三角矩阵的行列式=对角线上元素之乘积。例如,上式中 det A=2 3 2=12,23,课堂练习:考虑高斯消去法的反向替换的运行时间效率类型是多少?,24,6.3 平衡查找树,二叉查找树是一种重要的数据结构看书p162-163,思考下列问题:1 二叉查找树的特点是?2 在平均情况下,查找,插入,删除的效率是?3 最差情况是一种什么情况?4 最差情况效率是多少?,25,把一个集合变换成一棵二叉查找树是改变表现技术的一个实例好处是:在平均情况下,查找,插入,删除的效率是(logn)最差情况下,(n),退化成线性的情况,26,考虑一种既能够保留经典二叉查找树的好特性又能够避
9、免它退化到最差情况的数据结构两种方法:实例化简:不平衡二叉查找树变为平衡的形式改变表现:允许一棵查找树的单个节点中不止包含一个元素。,27,看书p163,p166回忆及思考下面问题1 AVL树的概念2 AVL树查找效率与什么相关?3 最差情况,28,AVL树的效率评价,n个节点的AVL树的高度h对于随机键的列表构造的AVL树,得到它的平均高度的精确公式被证明是有难度的。实验表明,这个高度大约是1.01log2n+0.1在平均情况下,查找一棵AVL树需要的比较次数和用折半查找一个有序数组是几乎相同的。在最差情况下查找和插入的效率属于(logn)缺点:频繁的旋转,维护平衡以及总体上的复杂性,29,
10、树,2-3树是一种特殊的高度平衡树,允许结点最多包含两个关键字。两类结点:2-node、3-node。树中所有叶子必须位于同一层。,30,2-3树的搜索与插入,看书理解1 搜索算法p1672 插入算法p168,31,搜索算法如果待搜索树的根是2-node型结点,搜索操作与二叉搜索树搜索操作相同;如果待搜索树的根是3-node型结点,最多只需要比较两次就可以知道是搜索成功还是需要向3棵子树继续递归搜索。,32,插入算法:当一个结点x需要插入到2-3树中的时候,总是根据它的大小关系,把其插入到叶结点中。插入前首先调用搜索算法找到待插入的叶结点,如果该叶结点是2-node型的,则直接插入即可;如果该
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 设计 分析 变治法 2021 课件
链接地址:https://www.31ppt.com/p-3968142.html