- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最优二叉搜索树上机报告-read
“最优二叉搜索树”上机报告
问题描述和分析
设S={x1,x2,……xn}是有序集,且x1x2…….xn,表示有序集S的二叉搜索树利用二叉树的结点存储有序集中的元素。它具有下述性质:存储于每个结点中的元素x大于其左子树中任一结点所存储的元素,小于其右子树中任一结点所存储的元素。二叉树的叶结点是形如(xi,xi+1)的开区间,在表示S的二叉搜索树中搜索元素x,返回的结果有两种情况:
在二叉搜索树的内结点中找到x=xi
在二叉搜索树的叶结点中确定x∈(xi,xi+1)
设在第(1)中情形中找到元素x=xi的概率为bi;在第(2)种情形中确定x∈(xi,xi+1)的概率为ai。其中约定x0=-∞,xn+1=+∞。显然有
ai≥0, 0≤i≤n; bj≥0, 1≤j≤n, ∑ai+∑bj=1
(a0,b1,a1,…..,bn,an)称为集合S的存取概率分布。
在表示S的二叉搜索树T中,设存储元素xi的结点深度为ci;叶结点(xi,xi+1)的结点深度为dj,则p=∑bi(1+ci)+ ∑ajdj表示在二叉搜索树T中进行一次搜索所需要的平均比较次数,p又成为二叉搜索树T的平均路长。在一般情况下,不同的二叉搜索树的平均路长是不相同的。
最优二叉搜索树问题是对于有序集S及其存取概率分布(a0,b1,a1,…..,bn,an),在所有表示有序集S的二叉搜索树中找到一棵具有最小平均路长的二叉搜索树。
问题的分解
二叉搜索树T的一棵含有结点xi,…..,xj和叶结点(xi-1,xi),…..(xj,xj+1)的子树可以
看作是有序集{xi,…..,xj}关于全集合(xi-1,xi,…..,xj,xj+1)的一棵二叉搜索树,其存取概率为以下的条件概率:
b’k=bk/wij, i≤k≤j; a’h=ah/wij, i-1≤h≤j
其中wij=ai-1+bi+……+bj+aj, 1≤i≤j≤n。
问题的分解具有最优子结构性质
证明:设Tij是有序集{xi,…..,xj}关于存取概率(a’i-1,b’i,…..,b’j,a’j)的一棵最优二叉搜索树,其平均路长为pij。Tij的根结点存储元素xm,其左右子树Tl和Tr的平均路长分别为pl和pr。由于Tl和Tr中结点深度为它们在Tij中的结点深度减1,故有wi,jpi,j=wi,j+wi,m-1pl+wm+1pr
由于Tl是关于集合{xi,…..,xm+1}的一棵二叉搜索树,故pl≥pi,m-1,若pl<pi,m-1,则用Ti,m-1替代Tl 可得到平均路长比Tij 更小的二叉搜索树。这与Tij 是最优二叉搜索树矛盾。故Tl 是一棵最优二叉搜索树。同理可证Tr 也是一棵最优二叉搜索树。
因此,最优二叉搜索树问题具有最优子结果性质。
规划方程
最优二叉搜索树Tij 的平均路长为pij,则所求的最优值为p1,n 。由最优二叉搜索树问题的最优子结构性质可建立计算pij 的递归式如下:
wi,jpi,j=wi,j+min{wi,k-1pi,k-1+wk+1,jpk+1,j} i≤k≤j
初始时,pi,i-1=0 , 1≤i≤n
记wi,jpi,j 为m(i,j),则m(1,n)= w1,np1,n=p1,n为所求的最优值。
计算m(i,j)的递归式为:
m(i,j)=wi,j+min{ m(i,k-1)+ m(k+1,j)} i≤k≤j
m(i,i-1)=0 1≤i≤n
据此,可得出解最优二叉搜索树问题的动态规划算法。
算法设计(递归和非递归)
【动态规划】
子问题的求解:
非递归:
void obst(float *a,float *b,int n,float **m,int **s,float **w)
{
for(int i=0;i=n;i++)
{
w[i+1][i]=a[i];
m[i+1][i]=0;
}
for(int r=0;rn;r++)
for(int i=1;i=n-r;i++)
{
int j=i+r;
w[i][j]=w[i][j-1]+a[j]+b[j];
m[i][j]=m[i+1][j];
s[i][j]=i;
for(int k=i+1;k=j;k++)
{
float t=m[i][k-1]+m[k+1][j];
if(tm[i][j])
{
m[i][j]=t;
s[i][j]=k;
}
}
m[i][j]+=w[i][j];
}
}
递归:
double obst(double *a,double *b,int i,int j)
{
if(m[i][j]=0)
return m
您可能关注的文档
- 作物dna分子标记辅助育种.doc
- 最优滤波理论.ppt
- 最优控制与系统仿真.pdf
- 最优多用户检测问题适应值曲面分析3.pdf
- 最新活动消息广岛内的日语教室-广岛平和记念资料馆.pdf
- 组合逻辑电路的分析与设计-read.ppt
- 组合逻辑-read.pdf
- 阻焊层板图soldermask.ppt
- 足太阳膀胱经和足少阴肾经.ppt
- 组蛋白基因家族.ppt
- 外研版选择性必修第三册 Unit 3 War and peace Starting Out & Understanding Ideas课件(共37张PPT).pptx
- 第14课 第一次世界大战与战后国际秩序 授课课件(共31张PPT).pptx
- 第18课 科技文化成就 课件(共19张PPT).pptx
- 人教版(2025) 必修第三册 Unit 2 Morals and Virtues Listening and Speaking课件(共22张).pptx
- 第20课 狼 课件(共35张PPT).pptx
- 外研版选择性必修 第三册Unit 2 A life’s work Starting out课件(共17张PPT).pptx
- 北师大版(2025) 必修第三册 Unit 8 Green Living Lesson 1 Roots and Shoots Lesson1课件(共23张PPT).pptx
- 北师大版(2025)必修第一册Unit 1 Life Choices Topic Talk 课件(共14张).pptx
- 人教版(2025) 必修第一册 Unit 1 Teenage Life Reading and Thinking 课件(共14张PPT).pptx
- 人教版(2025) 必修第一册 Unit 2 Travelling Around Listening and Talking课件(共16张PPT).pptx
最近下载
- APQP 先期产品质量策划(第三版)2024 中英文(高清可复制).doc
- 基于51单片机的二氧化碳浓度检测仪的设计.doc
- 2024—2025学年最新人教新版八年级下学期数学期末考试试卷 .pdf VIP
- MSD(湿敏器件防护)控制规范精讲.doc
- 《珍爱生命、预防溺水》主题班会 课件(共24张PPT)(含音频+视频).pptx VIP
- 2025年反诈防骗安全知识竞赛题库及答案.docx
- 高中英语读后续写满分突破主题专练:专题02 人与动物主题续写(解析版).doc VIP
- GA 423-2015 警用防弹盾牌.pdf
- 社区生鲜招商方案.docx VIP
- 最新2025年行政执法证完整考试题库必背100题(含标准答案).pdf VIP
文档评论(0)