6.设一组初始记录关键字序列为(20,12,42,31,18,14,28),则根据这些记录关键字构造的二叉排序树的平均查找长度是_______________________________。
时间: 2024-03-03 18:49:40 浏览: 149
二叉树 平衡二叉树 平均查找长度
根据这些记录关键字构造的二叉排序树如下所示:
```
20
/ \
12 42
/ \ /
18 14 31
\
28
```
二叉排序树的平均查找长度与树的形态有关,一般情况下难以计算出精确值,但可以通过公式进行估算。假设有 $n$ 个节点,则平均查找长度为:
$$ASL=\frac{1}{n}\sum_{i=1}^{n}{l_i}$$
其中 $l_i$ 表示第 $i$ 个节点的查找长度。对于一棵随机构造的二叉排序树,每个节点被访问到的概率是相等的,因此可以用节点的深度作为节点的查找长度。假设节点深度为 $d_i$,则 $l_i = d_i + 1$,因为在访问到节点后还需要比较一次才能确定查找成功。因此有:
$$ASL=\frac{1}{n}\sum_{i=1}^{n}{(d_i+1)}$$
对于一组随机的数据,期望的二叉排序树的深度为 $O(\log{n})$,因此可以估算出平均查找长度的数量级。但是,由于这组数据的初始序列并不是随机的,因此无法直接使用上述结论。不过,可以通过计算这棵树的深度来估算平均查找长度的数量级。
这棵树的深度为 4,因此平均查找长度的数量级为 $O(\log{n})$。具体的数值为:
$$ASL \approx \frac{1}{7}(3+2+3+2+3+3+4) \approx 2.71$$
因此,根据这些记录关键字构造的二叉排序树的平均查找长度约为 2.71。
阅读全文