最优二叉搜索树综述.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.5 最优二叉搜索树 Optimal Binary Search Trees 1二叉搜索树 2最优二叉搜索树 3最优二叉搜索树问题描述 4最优子结构性质 5递归计算最优值 6算法 是一棵空树或者满足以下的性质: 每个结点作为搜索对象,它的关键字是互不相同的。 对于树上的所有结点,如果它有左子树,那么左子树上所有结点的关键字都小于该结点的关键字。 对于树上的所有结点,如果它有右子树,那么右子树上所有结点的关键字都大于该结点的关键字。 1 二叉搜索树 搜索过程:从根结点开始,如果根为空,则搜索不成功;否则使用待搜索值与根结点比较,如果待搜索值等于根结点关键字,则搜索成功返回,如果小于根结点,则向左子树搜索;如果大于根结点,则向右子树搜索。 1 二叉搜索树 对于一个给定的关键字集合,可能有若干不同的二分检索树 如对保留字的子集 Name: 1 2 3 4 5 for if loop repeat while 的两棵二分检索树为 考虑a图和b图中最坏比较次数和平均比较次数 1 二叉搜索树 构造不同的二叉搜索树就有不同的性能特征。 二叉搜索树a在最坏情况下找一个标识符需要4次比较,而b表示的二分检索树最坏情况下只需3次比较。 假设只作成功的检索并且检索每个标识符的概率相同,则两棵二分检索树在平均情况下各需要12/5和11/5次比较。 1 二叉搜索树 2、最优二叉搜索树 存在的两个问题 1 在实际中也会遇到不成功检索的情况。 2 在实际中,不同标识符会有不同的检索概率。 对给定的标识符集合,希望给出构造二分搜索树的方法,使得所构造的二分搜索树具有最优的性能。 2 最优二叉搜索树 扩充二叉树:当二叉树里出现空的子树时,就增加新的、特殊的结点——空树叶。对于原来二叉树里度数为1的分支结点,在它下面增加一个空树叶;对于原来二叉树的树叶,在它下面增加两个空树叶。 扩充二叉树是满二叉树,新增加的空树叶(以下称外部结点)的个数等于原来二叉树的结点(以下称内部结点)个数加1。 在实际中也会遇到不成功检索的情况 2 最优二叉搜索树 A A代表其值处于wim和wul之间的可能关键码集合 2 最优二叉搜索树 设 S={x1, x2, ···, xn} 是一个有序集合,且x1, x2, ···, xn表示有序集合的二叉搜索树利用二叉树的顶点存储有序集中的元素,而且具有性质: 存储于每个顶点中的元素x 大于其左子树中任一个顶点中存储的元素,小于其右子树中任意顶点中存储的元素。二叉树中的叶顶点是形如(xi, xi+1) 的开区间。 在二叉搜索树中搜索一个元素x (1) 在二叉树的内部顶点处找到: x = xi (2) 在二叉树的叶顶点中确定: x∈ (xi , xi+1) 2 最优二叉搜索树 在实际中,不同标识符会有不同的检索概率。 设Pi是对ai检索的概率。 设qi是对满足aiXai+1,0?i ? n的标识符X检索的概率, (假定a0=-?且an+1=+?)。 a1 Q(0) E0 P(1) a2 E1 Q(1) P(2) ai P(i) ai+1 Ei Q(i) P(i+1) an P(n) En Q(n) 2 最优二叉搜索树 最优二叉搜索树 利用动态规划构造对标识符集合 {a1, a2, …, an}的最优二叉搜索树算法(包括成功检索和不成功检索)。 2 最优二叉搜索树 例 标识符集{1, 2, 3}={do, if, stop}可能的二分检索树为: 设每个内、外结点检索的概率相同:pi=qi=1/7, 求每棵树的平均比较次数(成本)。 若P1=0.5, P2=0.1, P3=0.05, q0=0.15, q1=0.1, q2=0.05, q3=0.05,求每棵树的平均比较次数(成本)。 在检索过程中,每进行一次比较,就进入下面一层, 对于成功的检索,比较的次数就是所在的层数加1。 对于不成功的检索,被检索的关键码属于那个外部结点代表的可能关键码集合,比较次数就等于此外部结点的层数。 2 最优二叉搜索树 例: P1=0.5, P2=0.1, P3=0.05, q0=0.15, q1=0.1, q2=0.05, q3=0.05 考虑平均搜索次数,也叫做平均路长 Pa(n)=1 × p1 + 2 × p2+3 × p3 + 1×q0 +2×q1+ 3×( q2 + q3 ) =1 × 0.5+ 2 × 0.1+3 ×0.05 + 1×0.05 +2×0.1+ 3×( 0.05 + 0.05 ) =1.5 2 最优二叉搜索树 a

文档评论(0)

jiayou10 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档