最优二叉查找树动态规划).docxVIP

  • 21
  • 0
  • 约4.72千字
  • 约 8页
  • 2016-11-30 发布于贵州
  • 举报
最优二叉查找树动态规划)

一、什么是最优二叉查找树最优二叉查找树:给定n个互异的关键字组成的序列K=k1,k2,...,kn,且关键字有序(k1k2...kn),我们想从这些关键字中构造一棵二叉查找树。对每个关键字ki,一次搜索搜索到的概率为pi。可能有一些搜索的值不在K内,因此还有n+1个“虚拟键”d0,d1,...,dn,他们代表不在K内的值。具体:d0代表所有小于k1的值,dn代表所有大于kn的值。而对于i = 1,2,...,n-1,虚拟键di代表所有位于ki和ki+1之间的值。对于每个虚拟键,一次搜索对应于di的概率为qi。要使得查找一个节点的期望代价(代价可以定义为:比如从根节点到目标节点的路径上节点数目)最小,就需要建立一棵最优二叉查找树。图一显示了给定上面的概率分布pi、qi,生成的两个二叉查找树的例子。图二就是在这种情况下一棵最优二叉查找树。概率分布:i012345pi0.150.100.050.100.20qi0.050.100.050.050.050.10已知每个关键字以及虚拟键被搜索到的概率,可以计算出一个给定二叉查找树内一次搜索的期望代价。假设一次搜索的实际代价为检查的节点的个数,即所发现的节点的深度加1.计算一次搜索的期望代价等式为:建立一棵二叉查找树,如果是的上式最小,那么这棵二叉查找树就是最优二叉查找树。而且有下式成立:二、最优二叉查找树的最优子结构最优子结构:如果一棵最优二

文档评论(0)

1亿VIP精品文档

相关文档