第7章 数据结构与算法优秀PPT.ppt





《第7章 数据结构与算法优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第7章 数据结构与算法优秀PPT.ppt(92页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第7章 数据结构与算法现在学习的是第1页,共92页概率算法概率算法概率算法同前几章算法的区别概率算法允许算法在执行过程中随机地选择下一个允许算法在执行过程中随机地选择下一个计算步骤计算步骤。在许多情况下,当算法在执行过程中面临一个选择时,随机性选择常比最优选择省时省时。概率算法的一个基本特征:对所求解问题的同对所求解问题的同一实例用同一概率算法求解两次,可能得到完一实例用同一概率算法求解两次,可能得到完全不同的效果。全不同的效果。反映在求解时间、结果质量等方面。现在学习的是第2页,共92页概率算法的主要类型概率算法的主要类型概率算法的主要类型数值概率算法蒙特卡罗算法拉斯维加斯算法舍伍德算法现在
2、学习的是第3页,共92页数值概率算法数值概率算法数值概率算法将一个问题的计算与某个概率分布已经确定的事件(或按需要构造满足某种概率分布的事件)联系起来。常用于数值问题的求解,得到的往往是近似解得到的往往是近似解解的精度随计算时间的增加而提高在许多情况下,计算出问题的精确解是不可能或没必要现在学习的是第4页,共92页舍伍德算法舍伍德算法舍伍德算法总能求解得到问题的一个解,而且所求得得解总是正确的。总能求解得到问题的一个解,而且所求得得解总是正确的。当一个确定性算法在最坏情况下的计算复杂性与其在平均情况下的计算复杂性有较大差别时,可在这个确定算法中引入随机性,将它改造成一个舍伍德算法,消除或减少问
3、题的好坏实例间的差别。如快速排序法:O(n2)(出现概率小);O(nlogn);舍伍德算法的精髓舍伍德算法的精髓不是避免算法的最坏情况,而是设法消除这种最坏情形行为与特定设法消除这种最坏情形行为与特定实例之间的关联性实例之间的关联性。数据洗牌+确定算法;现在学习的是第5页,共92页蒙特卡罗算法蒙特卡罗算法蒙特卡罗算法用于求解问题的准确解在有些情况下,近似解没有意义,比如“0/1”判定问题可以求得问题的一个解,但该解未必正确可以求得问题的一个解,但该解未必正确求得正确解的概率依赖于算法的计算时间蒙特卡罗算法的主要缺点就在于无法有效判定所得到的解是否肯定正确。现在学习的是第6页,共92页拉斯维加斯
4、算法拉斯维加斯算法拉斯维加斯算法算法停止时总能产生正确答案,但运行时间是输入的随机变量(不排除无穷步骤的可能性),而且其期望值是有界的。不会得到不正确的解但有时找不到问题的解但有时找不到问题的解找到正确解的概率随算法计算时间的增加而提高用同一拉斯维加斯算法反复对问题实例求解足够多次,可使求解失败的概率任意小。现在学习的是第7页,共92页Sherwood算法:正确的概率算法:对一个问题,如果存在一个Sherwood算法,则一定有正确性算法。Las Vegas算法:算法结束时给出的答案总是正确的,以正的概率使算法停止;没有执行步骤的上界;算法执行步骤的期望值有保证。Monte Carlo算法:算法
5、以正的概率给出正确答案,总能停机;执行步数有限,一般给定执行步骤的上界。现在学习的是第8页,共92页提纲随机数数值概率算法舍伍德算法拉斯维加斯算法蒙特卡罗算法本章小结现在学习的是第9页,共92页提纲随机数随机数数值概率算法舍伍德算法拉斯维加斯算法蒙特卡罗算法本章小结现在学习的是第10页,共92页随机数随机数随机数在科学计算中扮演非常重要的角色。现有的随机数产生器所产生的随机数都是伪随机数现有的随机数产生器所产生的随机数都是伪随机数在一定程度上是随机的常用的随机数产生方法线性同余法线性同余法现在学习的是第11页,共92页线性同余法该随机序列的种子该随机序列的种子如何选取常数如何选取常数b、c、m
6、将直接影响到所将直接影响到所产生随机序列的随机性。产生随机序列的随机性。现在学习的是第12页,共92页随机序列的产生与实验随机序列的产生随机序列的产生参看教材page241-242RandomfRandom模拟抛硬币实验模拟抛硬币实验参看教材page243-244现在学习的是第13页,共92页提纲随机数数值概率算法数值概率算法舍伍德算法拉斯维加斯算法蒙特卡罗算法本章小结现在学习的是第14页,共92页通过实例学习数值概率算法用随机投点法计算值计算定积分解非线性方程组现在学习的是第15页,共92页用随机投点法计算用随机投点法计算值值计算定积分计算定积分解非线性方程组解非线性方程组现在学习的是第16
7、页,共92页用随机投点法计算值算法思想算法思想设有一半径为r的圆及其外切四边形。向该正方形随机投掷n个点。落入圆内的点数为k。现在学习的是第17页,共92页用随机投点法计算用随机投点法计算值值计算定积分计算定积分解非线性方程组解非线性方程组现在学习的是第18页,共92页计算定积分用随机投点法计算定积分用平均值法计算定积分现在学习的是第19页,共92页用随机投点法计算定积分Y=f(x)Gxy101现在学习的是第20页,共92页用平均值法计算定积分现在学习的是第21页,共92页现在学习的是第22页,共92页满足概率分布函数满足概率分布函数f(x)的要求的要求现在学习的是第23页,共92页算法实现用
8、随机投点法计算定积分参看教材page245-246用平均值法计算定积分参看教材page246-247现在学习的是第24页,共92页用随机投点法计算用随机投点法计算值值计算定积分计算定积分解非线性方程组解非线性方程组现在学习的是第25页,共92页解非线性方程组求解过程会出现一些麻烦,求解过程会出现一些麻烦,甚至使方法失效而无法获得甚至使方法失效而无法获得一个近似解一个近似解现在学习的是第26页,共92页利用概率算法求解方法直观、简单,方法直观、简单,但工作量较大但工作量较大现在学习的是第27页,共92页算法改进现在学习的是第28页,共92页概率算法在求解非线性方程组时,虽然有概率算法在求解非线性
9、方程组时,虽然有些耗时,但实际应用中还是比较有效的,些耗时,但实际应用中还是比较有效的,对于那些精度要求较高的问题,对于那些精度要求较高的问题,概率算法概率算法往往会为其提供一个较好的初始值往往会为其提供一个较好的初始值。算法实现过程参看教材page248-249现在学习的是第29页,共92页提纲随机数数值概率算法舍伍德算法舍伍德算法拉斯维加斯算法蒙特卡罗算法本章小结现在学习的是第30页,共92页舍伍德算法舍伍德算法舍伍德算法目的:设法消除最坏情形行为与特定实例之间设法消除最坏情形行为与特定实例之间的关联性。的关联性。其计算时间复杂性对所有实例而言相对均匀,但同相应的确定性算法相比,其平均时间
10、复杂性没有改进。现在学习的是第31页,共92页现在学习的是第32页,共92页现在学习的是第33页,共92页实例说明线性时间选择跳跃表现在学习的是第34页,共92页线性时间选择线性时间选择跳跃表跳跃表现在学习的是第35页,共92页线性时间选择线性时间选择线性时间选择问题所在:选择合适的划分基准对于选择问题,用拟中位数作为划分基准可以保证在最坏情况下用线性时间完成选择。舍伍德型选择算法舍伍德型选择算法随机选择一个组元素作为划分基准,既保证算法的线性时间平均性能,又可以避免计算中位数的麻烦。现在学习的是第36页,共92页Select算法分析现在学习的是第37页,共92页Select算法分析如何得到?
11、如何得到?现在学习的是第38页,共92页考虑这种情况:无论考虑这种情况:无论n是奇数还是是奇数还是偶数,偶数,T(n/2)都出现都出现2次次现在学习的是第39页,共92页结论结论结论非递归的舍伍德型选择算法Select可以在O(n)平均时间内找出个输入元素中的第小元素提示提示对于某些确定性算法,可以将其改造成舍伍德算法,使得该算法以高概率对任何实例均有效。对于某些不能直接改造的情况,可以借助预处借助预处理技术理技术,不改变原有的确定性算法,而仅对其对其输入元素进行随机洗牌输入元素进行随机洗牌,同样可以收到舍伍德算法的效果。现在学习的是第40页,共92页线性时间选择线性时间选择跳跃表跳跃表现在学
12、习的是第41页,共92页跳跃表跳跃表跳跃表如果用有序链表来表示一个含有个元素的有序集合,则在最坏情况下,搜索中的一个元素需要(n)计算时间。为了跳高效率,可以在部分结点处增加附加指针来提高搜索性能(借助这些附加指针,可以跳过链表中的若干结点,从而加快搜索速度)。这种增加了向前附加指针的有序这种增加了向前附加指针的有序链表称为跳跃表。链表称为跳跃表。现在学习的是第42页,共92页11131719230举例说明没有附加指针的有序链表没有附加指针的有序链表1113171923011113171923012增加附加指针后的有序链表增加附加指针后的有序链表跳跃表跳跃表现在学习的是第43页,共92页如何进
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第7章 数据结构与算法优秀PPT 数据结构 算法 优秀 PPT

限制150内