最优二叉搜索树

计算期望搜索代价构建最优解
摘要由CSDN通过智能技术生成

问题定义

给定一个n个不同关键词的已排序的序列 K = < k 1 , k 2 , . . . , k n > ( k 1 < k 2 < . . . < k n ) K=<k_1,k_2,...,k_n>(k_1<k_2<...<k_n) K=<k1,k2,...,kn>(k1<k2<...<kn),用这些关键字构建一棵二叉搜索树T

  • 对每个关键字 k i k_i ki,都有一个频率 p i p_i pi表示其搜索频率
  • 有n+1个**“伪关键字” d 0 , d 1 , d 2 . . . , d n d_0,d_1,d_2...,d_n d0,d1,d2...,dn表示不在K中的值**,每个值都有一个频率 q i q_i qi表示对应的搜索频率
    • d 0 d_0 d0:所有小于 k 1 k_1 k1的值
    • d n d_n dn:所有大于 k n k_n kn的值
    • d i ( i = 1 , 2 , . . . n − 1 ) d_i(i=1,2,...n-1) di(i=1,2,...n1):所有介于 ( k i , k i + 1 ) (k_i,k_{i+1}) (ki,ki+1)之间的值
  • 每个关键字 k i k_i ki是一个内部节点
  • 每个伪关键字 d i d_i di是一个叶子节点

对于每次搜索,有两种情况:

  • 成功:找到某个关键字 k i k_i ki
  • 失败:找到某个伪关键字$d_i $

所以:
∑ i = 1 n p i + ∑ i = 0 n q i = 1 \sum_{i=1}^{n}p_i+\sum_{i=0}^{n}q_i=1 i=1npi

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值