网站大量收购独家精品文档,联系QQ:2885784924

最优二叉搜索树.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最优二叉搜索树

最优二叉搜索树 对于有n个关键码的集合,其关键码有n!种不同的排列如何评价这些二叉搜索树,可以用树的搜索效率来衡量。 例如,已知关键码集合{ a1, a2, a3 } = { do, if, to },对应的搜索概率为 p1=0.5, p2=0.1, p3=0.05, 在各个搜索不成功的间隔内搜索概率又分别为 q0=0.15, q1=0.1, q2=0.05, q3=0.05。可能的二叉搜索树如下所示。 1 扩充二叉搜索树 3个结点的5种不同的扩充二叉搜索树 :        (a)               (b)        (c)               (d)        (e) 在扩充二叉搜索树中 ○表示内部结点,包含了关键码集合中的某一个关键码;□表示外部结点,代表了造成搜索失败的各关键码间隔中的不在关键码集合中的关键码。 在每两个外部结点之间必然存在一个内部结点。设二叉树的内部结点有 n 个,外部结点有 n+1 个。如果定义每个结点的路径长度为该结点的层次,并用 I 表示所有 n 个内部结点的路径长度之和,用 E 表示 n+1 个外部结点的路径长度之和,可以用归纳法证明,E = I+2n。 一棵扩充二叉搜索树的搜索成功的平均查找长度ASLsucc可以定义为该树所有内部结点上的权值p与搜索该结点时所需的关键码比较次数c (= l + 1)乘积之和: 扩充二叉搜索树搜索不成功的平均搜索长度ASLunsucc为树中所有外部结点上权值q[j]与到达外部结点所需关键码比较次数c[j](= l[j])乘积之和: 扩充二叉搜索树总的平均搜索长度为:ASL = ASLsucc + ASLunsucc 所有内、外部结点上的权值关系为 2 最优二叉搜索树 (1) 相等搜索概率的情形 若设树中所有内、外部结点的搜索概率都相等: p = q[j] = 1/7,1=i=3, 0=j=3 图(a):ASLsucc = 1/7*3+1/7*2+1/7*1 = 6/7, ASLunsucc = 1/7*3*2+1/7*2+1/7*1 = 9/7。 总平均搜索长度 ASL = 6/7 + 9/7 = 15/7。 图(a): ASL = 15/7    图(d):ASL = 15/7 图(b):ASL = 13/7     图(e):ASL = 15/7 图(c):ASL = 15/7     图(b)的情形所得的平均搜索长度最小。 一般把平均搜索长度达到最小的扩充二叉搜索树称作最优二叉搜索树, 在相等搜索概率的情形下,因为所有内部结点、外部结点的搜索概率都相等,把它们的权值都视为 1。同时,第 k 层有 2k 个结点,k = 0, 1, ?。则有 n 个内部结点的扩充二叉搜索树的内部路径长度 I 至少等于序列 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, … 的前n项的和。 因此,最优二叉搜索树的搜索成功的平均搜索长度和搜索不成功的平均搜索长度分别为: (2) 不相等搜索概率的情形 设树中所有内、外部结点的搜索概率互不相等, p[1] = 0.5,p[2] = 0.1, p[3] = 0.05 q[0] = 0.15,q[1] = 0.1,q[2] = 0.05,q[3] = 0.05 图(a):ASLsucc = 0.5*3 + 0.1*2 + 0.05*1 = 1.75, ASLunsucc = 0.15*3 + 0.1*3 + 0.05*2 + 0.05*1= 0.9。 ASL = ASLsucc + ASLunsucc = 2.65。 图(a):ASL = 2.65 图(d): ASL = 2.15 图(b):ASL = 1.9 图(e):ASL = 1.6 图(c):ASL = 0.85 由此可知,图(c)的情形下树的平均搜索长度达到最小,因此,图(c)的情形是最优二叉搜索树。 不相等搜索概率情形下的最优二叉搜索树可能不同于完全二叉树的形态。 考虑在不相等搜索概率情形下如何构造最优二叉搜索树。 假设关键码集合放在一个有序的顺序表中 { key[1], key[2], key[3],…key[n] } 设最优二叉搜索树为T[0][n],其平均搜索长度为: l 是内部结点a所在的层次号,l [j]是外部结点 j 所在的层次号。C[0][n]是树的代价。 为计算方便,将 p 与 q[j] 化为整数。 构造最优二叉搜索树: 要构造最优二叉搜索树,必须先构造它的左子树和右子树,它们也是最优二叉搜索树。 对于任一棵子树T[j],它由 { key[i+1], key[i+2],…, key[j] } 组成, 其内部结点的权值为

文档评论(0)

zhanghc + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档