轻松解决不同关键字序列构成的二叉排序树ASL(平均查找长度)(成功)不同问题

来源:互联网 发布:centos如何进入命令行 编辑:程序博客网 时间:2024/06/05 07:58

打算就说说标题的方法,和介绍一下查找成功和非成功二叉树中结点的方法

关键字序列1,2,3,4,5构造而得的二叉排序树

这里写图片描述

ASL=(1,2,3,4,5)/5=3

按关键字3,1,2,5,4构造而得的二叉排序树

这里写图片描述

ASL=(1+2+2+3+3)/5=2.2

很明显第二种序列的ASL要快。至于二叉排序树怎么构成的其实就是根据它的性质(若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值,若它的右子树不空,则右子树上的所有结点的值均大于它的根结点的值)

ASL怎么求

分别分为成功和非成功的情况

成功

每个结点的深度相加除以结点个数

非成功

我拿个书上的例子把
这里写图片描述

首先,先补全二叉树,可以看到有12个非成功的结点,这里我假设每个非成功查找结点概率相同,然后深度为3的非成功结点有4个,深度为4的非成功结点有8个。所以是3*4+4*8

所以该图非成功的ASL=(3*4+4*8)/12

阅读全文
0 0