ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:123.97KB ,
资源ID:16021141      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16021141.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(0020算法笔记动态规划最优二叉搜索树问题Word文档下载推荐.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

0020算法笔记动态规划最优二叉搜索树问题Word文档下载推荐.docx

1、在一个表示S的二叉树T中,设存储元素Xi的结点深度为Ci;叶结点(xj, xj+0的结点深度为dj。n n厂孕(1+处剳同注:在检索过程中,每进行一次比较,就进入下面一层,对于成功的检索,比较的次数 就是所在的层数加1。对于不成功的检索,被检索的关键码属于那个外部结点代表的可能关 键码集合,比较次数就等于此外部结点的层数。对于图的内结点而言,第 0层需要比较操 作次数为1,第1层需要比较2次,第2层需要3次。p表示在二叉搜索树T中作一次搜索所需的平均比较次数。 P又称为二叉搜索树T的平均路长,在一般情况下,不同的二叉搜索树的平均路长是不同的。对于有序集 S及其存取概率分布(ao,b1,a1,

2、bn,an),在所有表示有序集S的二叉搜索树中找出一棵具有最小平均路长的二 叉搜索树。设Pi是对ai检索的概率。设qi是对满足aiXai+1,0=i0.1+ 3 0.05 + 0.05 ) =1.5P b(n) = 1Xp1 + 2p3+3祁2 + 1q0 +2 q3 + 3 q1 + q2 ) =1X0.5+ 2 )0.05 + 3。为+ 100.05+ 3 0.1 + 0.05 ) =1.6P c(n) = 1Xp2 + 2(p1 +p3) + 2(q0 +q1 +q2+ q3 ) =1 0.1+ 2(0.5 + 0.05)+ 2 (0.15 + 0.1 + 0.05 + 0.05) =1

3、.9P d(n) = 1Xp3 + 2莎1+3q3+2 q0+3 和1+ q2) =10.05 + 2区5 + 30.1 + 105 + 20.15 + 3(0.1 + 0.05) =2.15P e(n) = 1p2+3p1 + 1q2+3 和0 + q1) =1K1+ 3区5 + 10d5 + 3(0.15 + 0.1) =2.85因此,上例中的最小平均路长为可以得出结论:结点在二叉搜索树中的层次越深,需要比较的次数就越多,因此要构造一棵最小二叉树,一般尽量把搜索概率较高的结点放在较高的层次 。2、最优子结构性质:假设选择k为树根,则1,2,-1和ao, a1,on都将位于左子树L上,其余结

4、点(k+1,n和ak, ak+i,a)位于右子树 R上。设COST(L)和COST(R)分别是二分检索树T的左子树和右子树的成若T本。则检索树 T的成本是:P(k)+ COST(L) + COST(R) +是最优的,则上式及 COST(L)和COST(R)必定都取最小值。证明:二叉搜索树T的一棵含有顶点Xi ,,Xj和叶顶点(xi-1 ,Xi ) , ,( Xj , Xj+1)的子树可以看作是有序集 Xi , , Xj关于全集为 Xi-1 ,Xj+1 的一棵二叉搜索树(T自身可以看作是有序集)。根据S的存取分布概率,在子树的顶点处被搜索到的概率是:ikij Xi,,Xj的存储概率分布为ai-1

5、, bi,bj, aj ,其中,ah, bk分别是下面的条件概率:瓦=加/% ik= Pi,m-1。若Pl Pi,m-1,贝y用Ti,m-1替换Tl可得到平均路长比Tij更小的二叉搜索树。这与Tij是最优二叉搜索树矛盾。故Ti是一棵最优二叉搜索树。同理可证Tr也是一棵最优二叉搜索树。因此最优二叉搜索树问题具有最优子结构性质。3、递推关系:根据最优二叉搜索树问题的最优子结构性质可建立计算 pij的递归式如下:叫jPij=+(殳;专山41+叫i Jt). . 1=0 1V/M 打初始时:如7 5记 wi,j pi,j 为 m(i,j),则 m(1,n)二w i,n pi,n= pi,n 为所求的最

6、优值。计算 m(i,j)的递归式为:川(A7)=、耳了 + mill 斤一 1) + nik +1, /), i ij川亿 f -1)= a i = 124、求解过程:,Ttn +1n1)没有内部节点时,构造 T10,T21,T322)构造只有1个内部结点的最优二叉搜索树 T11,T22Tnn,可以求得mii同时可以用一个数组存做根结点元素为:Tnn,(起止下标的差)T11, T22n-1 T1 n具体代码如下:cpp view plain copy/3d11-1 最优二叉搜索树 动态规划#include stdafx.h#include using names pace std;double

7、 *w);9.voidTraceback( int n, int i, int j, int10.11.intmain()12.13.doublea = 0.15,0.1,0.05,0.05;14.b = 0.00,0.5,0.1,0.05;15.16.coutvv有序集的概率分布为:vvendl;17.for ( inti=0; ivN+1; i+)18.19.a vvivv = vvaivv ,b20.21.22.*m = new double *N+2;23.int *s= new int *N+2;24.*w = new double *N+2;25.26.ivN+2;i+)27.28

8、.mi=new double N+2;29.si=new int N+2;30.wi=31.32.33.Op timalBinarySearchTree(a,b,N,m,s,w);34.二叉搜索树最小平均路长为:-35.构造的最优二叉树为:36.Traceback(N,1,N,s,0, O);37.38.39.40.delete mi;41.delete si;42.delete wi;43.44.deletem;45.s;46.w;47.return0;void OptimalBinarySearchTree(8. vvbivvendl;vvm1Nvvendl;*s, int f, char

9、 ch);double a, double b, int n, double *m, int *s,50. void OptimalBinarySearchTree(double a, double b,double *w)51.52./初始化构造无内部节点的情况53.for ( int i=0;=n;54.55.wi+1i = ai;56.mi+1i = 0;57.58.59.for ( int r=0; rn;叶+)/r代表起止下标的差60.61.for (int i=1;=n-r; i+) /i 为起始元素下标62.63.int j = i+r; /j为终止元素下标64.65./ 构造 Tij填写 wij,mij,sij66./首选i作为根,其左子树为空,右子树为节点67.wij=wij-1+aj+bj;68.m

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1