道客多多

算法设计与分析7HeapSort

1,第7章 随机化算法,2,学习要点 理解产生伪随机数的算法 掌握数值随机化算法的设计思想 掌握蒙特卡罗算法的设计思想 掌握拉斯维加斯算法的设计思想 掌握舍伍德算法的设计思想,3,随机数,随机数在随机化算法设计中扮演着十分重要的角色。在现实计算机上无法产生真正的随机数,因此在随机化算法中使用的随机数

算法设计与分析7HeapSortTag内容描述:

1、的随机序列a0,a1,an满足,其中b0,c0,dm。
d称为该随机序列的种子。
如何选取该方法中的常数b、c和m直接关系到所产生的随机序列的随机性能。
这是随机性理论研究的内容,已超出本书讨论的范围。
从直观上看,m应取得充分大,因此可取m为机器大数,另外应取gcd(m,b)=1,因此可取b为一素数。
,4,数值随机化算法,5,用随机投点法计算值,设有一半径为r的圆及其外切四边形。
向该正方形随机地投掷n个点。
设落入圆内的点数为k。
由于所投入的点在正方形上均匀分布,因而所投入的点落入圆内的概率为 。
所以当n足够大时,k与n之比就逼近这一概率。
从而,double Darts(int n) / 用随机投点法计算值static RandomNumber dart;int k=0;for (int i=1;i =n;i+) double x=dart.fRandom();double y=dart.fRandom();if (x*x+y*y)=1) k+;return 4*k/double(n); ,6,计算定积分,设f(x)是0,1上的连续函数,且0。

2、这种局部最优选择并不总能获得整体最优解(Optimal Solution),但通常能获得近似最优解(Near-Optimal Solution)。
,7.1.1 贪心法的设计思想,例:用贪心法求解付款问题。
假设有面值为5元、2元、1元、5角、2角、1角的货币,需要找给顾客4元6角现金,为使付出的货币的数量最少,首先选出1张面值不超过4元6角的最大面值的货币,即2元,再选出1张面值不超过2元6角的最大面值的货币,即2元,再选出1张面值不超过6角的最大面值的货币,即5角,再选出1张面值不超过1角的最大面值的货币,即1角,总共付出4张货币。
,在付款问题每一步的贪心选择中,在不超过应付款金额的条件下,只选择面值最大的货币,而不去考虑在后面看来这种选择是否合理,而且它还不会改变决定:一旦选出了一张货币,就永远选定。
付款问题的贪心选择策略是尽可能使付出的货币最快地满足支付要求,其目的是使付出的货币张数最慢地增加,这正体现了贪心法的设计思想。
,贪心法求解的问题的特征: (1)最优子结构性质当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质,也称此问题满足最优性原理。
(2)贪。

3、1 n=0f (n)= 1 n=1 f (n-1)+f (n-2) n1,F(4),F(3),F(2),F(2),F(1),F(1),F(0),Fibonacci Serial Problem,Recursion Form,算法过程:1. procedure f(n)2. if (n=1) or (n=2) then return 13. else return f(n-1)+f(n-2),时间复杂性:,1,若n=1 或 n=2,若n3,Dynamic Programming Form,计算过程: 从f1开始,自底向上计算到fn。
时间复杂性:(n) 空间复杂性:(1),Dynamic Programming Principle,将待求解的问题分解成若干个子问题,先求解子问题,并存储子问题的解而避免计算重复的子问题,再由子问题的解得到原问题的解。
,Difference between DC and DP,都是分解成子问题,由子问题的解得到原问题的解。
分治中子问题相互独立,而动态规划中子问题互相有联系,且存在重。

4、列a0,a1,an满足,其中b0,c0,dm。
d称为该随机序列的种子。
如何选取该方法中的常数b、c和m直接关系到所产生的随机序列的随机性能。
这是随机性理论研究的内容,已超出本书讨论的范围。
从直观上看,m应取得充分大,因此可取m为机器大数,另外应取gcd(m,b)=1,因此可取b为一素数。
,4,数值概率算法,5,用随机投点法计算值,设有一半径为r的圆及其外切四边形。
向该正方形随机地投掷n个点。
设落入圆内的点数为k。
由于所投入的点在正方形上均匀分布,因而所投入的点落入圆内的概率为 。
所以当n足够大时,k与n之比就逼近这一概率。
从而,double Darts(int n) / 用随机投点法计算值static RandomNumber dart;int k=0;for (int i=1;i =n;i+) double x=dart.fRandom();double y=dart.fRandom();if (x*x+y*y)=1) k+;return 4*k/double(n); ,6,计算定积分,设f(x)是0,1上的连续函数,且0f(x)。

5、情况下,却具有很坏的性能。
由于随机性选择比最优选择省时间,因此引入随机化算法可以在很大程度上降低算法的复杂度。
,4,很早以前就被人们所发现和利用。
17世纪,人们就知道用事件发生的“频率”来决定事件的“概率”。
19世纪人们用投针试验的方法来决定。
高速计算机的出现,使得用数学方法在计算机上大量模拟这样的试验成为可能。
,5,从Buffon(蒲丰)投针问题谈起,6,7,8,概述,随机算法对所求解问题的同一个实例用同一随机算法求解两次可能得到完全不同的效果。
这两次求解所需要的时间,甚至所得到的结果都可能会有相当大的差别。
包括 数值概率算法 蒙特卡罗(Monte Carlo)算法 拉斯维加斯(Las Vegas)算法 舍伍德(Sherwood)算法,9,数值概率算法常用于数值问题的求解。
将一个问题的计算与某个概率分布已经确定的事件联系起来,求问题的近似解。
这类算法所得到的往往是近似解,且近似解的精度随计算时间的增加而不断提高。
在许多情况下,要计算出问题的精确解是不可能或没有必要的,因此可以用数值随机化算法得到相当满意的解。
,蒙特卡罗算法用于求问题的准确解,但得到的解未必是正确。

6、 Based Sorting Algorithm,Heapsort,Heap Structure and Patial Order Tree Property The Strategy of Heapsort Keep the Partial Order Tree Property after the maximal element is removed Constructing the Heap Complexity of Heapsort Accelerated Heapsort,Priority Queue ADT,“FIFO” in some special sense. The “first” means some kind of “priority”, such as value(largest or smallest) Priority queue is closely associated with the algorithm design strategy known as “greedy method”. Priority queue cant be implem。

【算法设计与分析7HeapSort】相关PPT文档
计算机算法设计与分析(第4版)[王晓东][电子教案]第7章.ppt
算法设计与分析_王红梅_第7章 贪心法.ppt
算法设计技巧与分析 第7章 动态规划.ppt
计算机算法设计与分析_第7章.ppt
第7章算法设计与分析.ppt
算法设计与分析第7章 概率算法.ppt
算法设计与分析7HeapSort.ppt
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

经营许可证编号:粤ICP备2021046453号    营业执照商标

1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



收起
展开