算法设计与分析变治法2021最全课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《算法设计与分析变治法2021最全课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 设计 分析 变治法 2021 课件
- 资源描述:
-
1、12(1)实例化简)实例化简同样问题同样问题 6.1 预排序预排序 6.2 高斯消去法高斯消去法 6.3 平衡查找树平衡查找树AVL树树(2)改变表现)改变表现同样实例同样实例 6.3 2-3树树 6.4 堆和堆排序堆和堆排序 6.5 霍纳法则和二进制幂霍纳法则和二进制幂(3)问题化简)问题化简另一问题另一问题 6.63 列表是列表是有序有序的话,许多关于列表的问题更容易求解。的话,许多关于列表的问题更容易求解。因此很多问题需要因此很多问题需要先排序先排序,则该问题的时间效率依赖,则该问题的时间效率依赖于排序算法的效率。于排序算法的效率。回忆前面所学的排序算法:回忆前面所学的排序算法:插入排序
2、最差插入排序最差(n2)平均平均 (n2)最优最优(n)快速排序最差快速排序最差(n2)平均平均(1.38nlog2n)最优最优(nlog2n)合并排序最差合并排序最差(nlog2n)选择排序选择排序(n2)冒泡排序冒泡排序(n2)4效率若有n个关键字,构成一棵全部由3节点构成的满树,n与h之间的关系为?5 堆中删除元素的算法3 自底向上构造法的时间效率所能想到的求模式的方法:3 最差情况是一种什么情况?高斯消去法的现代商业实现是以LU分解为基础的。1 二叉查找树的特点是?一般的线性方程组是指如下形式的方程组:考虑一种既能够保留经典二叉查找树的好特性/输入:数组A模式:指数组列表中出现次数最多
3、的值。/输出:方程组的增广矩阵等价的上三角矩阵在最差情况下查找和插入的效率属于(logn)针对随机文件的实验指出,堆排序比快速排序运行的慢,但和合并排序还是有竞争力的。7,6,5,2两种构造方法的效率对于随机键的列表构造的AVL树,得到它的平均高度的精确公式被证明是有难度的。例例1、检验数组中元素的唯一性、检验数组中元素的唯一性 蛮力法如何做?时间效率是多少?蛮力法如何做?时间效率是多少?如果先排序,则如何检查元素的唯一性?如果先排序,则如何检查元素的唯一性?只需检查相互紧挨的元素。只需检查相互紧挨的元素。PresortElementUniqueness(A0.n-1)/先对数组排序再验证唯一
4、性先对数组排序再验证唯一性 /输入:数组输入:数组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是模式是模式 所能想到的求模式的方法:所能想到的求模式的方法:用辅助列表列出所有元素及其出现频率。用辅助列表列出所有元素及其
5、出现频率。时间效率如何分析?时间效率如何分析?采用排序的思想采用排序的思想先排序后计算相邻接次数最多的等值元素。先排序后计算相邻接次数最多的等值元素。时间效率如何分析?时间效率如何分析?6 思考:预排序还可以用在什么方面?思考:预排序还可以用在什么方面?查找查找 分析顺序查找和先排序再查找的时间效率分析顺序查找和先排序再查找的时间效率 如果要在同一个列表中进行多次查找,在排序上如果要在同一个列表中进行多次查找,在排序上花费时间是值得的。花费时间是值得的。课堂练习:课堂练习:采用合并排序为预排序,折半查找,要做多少次采用合并排序为预排序,折半查找,要做多少次查找才能使得对一个由查找才能使得对一个
6、由n个元素构成的数组所做个元素构成的数组所做的预排序是有意义的。的预排序是有意义的。7 预排序的其他应用:预排序的其他应用:对点排序,拓扑排序对点排序,拓扑排序 课堂练习:课堂练习:P153 4 8 科学计算中通常需要解多个变量的方程组,这些方程组科学计算中通常需要解多个变量的方程组,这些方程组当中最简单的是线性方程组,也就是变量的次数均为当中最简单的是线性方程组,也就是变量的次数均为1次的。次的。求解线性方程的方法求解线性方程的方法 有利用高斯有利用高斯消元消元的直接法以及的直接法以及迭代法迭代法。体现的变治的思想:体现的变治的思想:将方程组变成一个具有特殊性质的方程组将方程组变成一个具有特
7、殊性质的方程组(上三角矩阵上三角矩阵)9 一般的线性方程组是指如下形式的方程组:一般的线性方程组是指如下形式的方程组:11 112 21121 122 2221 12 2n nn nmmmn nma xa xa xba xa xa xba xa xa xb 1011121111212122222212000nnnnnnnnnnaaaaaaaaaaaaaaa 分消元过程和回代过程。消元过程将原方程组变分消元过程和回代过程。消元过程将原方程组变为上三角方程组,回代过程得到方程组的解。为上三角方程组,回代过程得到方程组的解。1105412321321321xxxxxxxxx 220033301112
8、0333011120111511411122/232121232/13122rrrrrr1 0 1 123xxx,回代后得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/Aii13 高斯消元法的效率分析高斯消元法的效率分析 基本操作:乘法基本操作:乘法 执行次数:
9、易见,三重循环执行次数:易见,三重循环 C(n)(n3)14高斯消去法的高斯消去法的现代商业实现现代商业实现是以是以LU分解为基础分解为基础的。的。15 05412321321321xxxxxxxxx111114112A12121012001L200330112U系数矩阵为系数矩阵为下三角矩阵下三角矩阵L,由主对角线上的,由主对角线上的1以及在高斯消去过程中行的乘数构成以及在高斯消去过程中行的乘数构成上三角矩阵上三角矩阵U是消去的结果是消去的结果可观察出可观察出两个矩阵两个矩阵的乘积的乘积LU等于等于A16记原方程组为记原方程组为 A X=b A=LU 则原方程组为则原方程组为LUX=b其求解
10、转化为两个三角形方程组的求解:其求解转化为两个三角形方程组的求解:LY=b 下三角方程组下三角方程组 UX=Y 上三角方程组上三角方程组1705 21 3221121211yyyyyy22 333 1 2332321xxxxxx与与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分解不需要额外的存储空间分
11、解不需要额外的存储空间19111211112121222212221212100010001nnnnnnnnnnnnaaaxxxaaaxxxaaaxxx 逆矩阵的定义:求矩阵求矩阵 A 的逆矩阵,如何转换的逆矩阵,如何转换20求矩阵求矩阵 A 的逆矩阵,转化为求解的逆矩阵,转化为求解n个方程组个方程组 A Xj=bj 其中,其中,bj是单位矩阵是单位矩阵的第的第j列,而列,而Xj 则是逆矩阵的第则是逆矩阵的第j列。列。10001000121n阶矩阵的行列式的计算由递归公式定义:阶矩阵的行列式的计算由递归公式定义:其中,其中,n=1时,时,det A=a11,若,若j为奇数,为奇数,sj=1,若
12、若j为偶数,为偶数,sj=-1例如例如n=3的情形如下:的情形如下:11121322232123212221222311121332333133313231323311 22 3312 23 3121 32 1331 22 1321 12 3332 23 11aaaaaaaaaaaaaaaaaaaaaaaaaa aaa aa a aaa aa aaa a anjjjAsA1detdet22 按照定义计算高阶行列式是不可能的。按照定义计算高阶行列式是不可能的。可利用高斯消元法:可利用高斯消元法:矩阵矩阵A的行列式的行列式=消元后上三角矩阵的行列式消元后上三角矩阵的行列式 =对角线上元素之乘积。对
13、角线上元素之乘积。例如,上式中例如,上式中 det A=2 3 2=1220033011211111411223 课堂练习:课堂练习:考虑高斯消去法的反向替换的运行时间效率类型考虑高斯消去法的反向替换的运行时间效率类型是多少?是多少?24二叉查找树是一种重要的数据结构二叉查找树是一种重要的数据结构看书看书p162-163,思考下列问题:,思考下列问题:1 二叉查找树的特点是?二叉查找树的特点是?2 在平均情况下,查找,插入,删除的效率是?在平均情况下,查找,插入,删除的效率是?3 最差情况是一种什么情况?最差情况是一种什么情况?4 最差情况效率是多少?最差情况效率是多少?25把一个集合变换成一
14、棵二叉查找树是把一个集合变换成一棵二叉查找树是改变表现技改变表现技术术的一个实例的一个实例好处是:好处是:在平均情况下,查找,插入,删除的效率是在平均情况下,查找,插入,删除的效率是(logn)最差情况下,最差情况下,(n),退化成线性的情况,退化成线性的情况26 考虑一种既能够保留经典二叉查找树的好特性考虑一种既能够保留经典二叉查找树的好特性 又能够避免它退化到最差情况的数据结构又能够避免它退化到最差情况的数据结构 两种方法:两种方法:实例化简:实例化简:不平衡二叉查找树变为平衡的形式不平衡二叉查找树变为平衡的形式 改变表现:改变表现:允许一棵查找树的单个节点中不止包允许一棵查找树的单个节点
15、中不止包含一个元素。含一个元素。27 看书看书p163,p166回忆及思考下面问题回忆及思考下面问题 1 AVL树的概念树的概念 2 AVL树查找效率与什么相关?树查找效率与什么相关?3 最差情况最差情况28 n个节点的个节点的AVL树的高度树的高度h 对于随机键的列表构造的对于随机键的列表构造的AVL树,得到它的平均高度的树,得到它的平均高度的精确公式被证明是有难度的。精确公式被证明是有难度的。实验表明,这个高度大约是实验表明,这个高度大约是1.01log2n+0.1 在平均情况下,查找一棵在平均情况下,查找一棵AVL树需要的比较次数和用折树需要的比较次数和用折半查找一个有序数组是几乎相同的
16、。半查找一个有序数组是几乎相同的。在最差情况下查找和插入的效率属于在最差情况下查找和插入的效率属于(logn)缺点:缺点:频繁的旋转,维护平衡以及总体上的复杂性频繁的旋转,维护平衡以及总体上的复杂性3277.1)2(log4405.1log22nhn29 2-3树是一种树是一种特殊特殊的高度平衡树,允许结点的高度平衡树,允许结点最多最多包含包含两两个个关键字。两类结点:关键字。两类结点:2-node、3-node。树中所有叶子必须位于树中所有叶子必须位于同一层同一层。k k k2k1,k22-node3-node30 看书理解看书理解 1 搜索算法搜索算法p167 2 插入算法插入算法p168
17、31 搜索算法搜索算法 如果待搜索树的根是如果待搜索树的根是2-node型结点,搜索操作型结点,搜索操作与二叉搜索树搜索操作相同;与二叉搜索树搜索操作相同;如果待搜索树的根是如果待搜索树的根是3-node型结点,最多只需型结点,最多只需要比较两次就可以知道是搜索成功还是需要向要比较两次就可以知道是搜索成功还是需要向3棵子树继续递归搜索。棵子树继续递归搜索。32 插入算法:插入算法:当一个结点当一个结点x需要插入到需要插入到2-3树中的时候,总是根据它树中的时候,总是根据它的大小关系,把其插入到叶结点中。的大小关系,把其插入到叶结点中。插入前首先调用搜索算法找到待插入的叶结点,如插入前首先调用搜
展开阅读全文