数据结构之外部排序:最佳归并树

思维导图:

在这里插入图片描述

归并树的定义:

在这里插入图片描述

例:

在这里插入图片描述在这里插入图片描述

另一种理解方式:
1、每个数字代表了一个归并段的长度
2、121就代表了总的数据元素的个数
3、树的深度代表了读或写的次数
4、总的IO的读写次数=(读+写)✖元素个数 = (2+2)×121=484

但是这个只是一颗普通的二叉树,由上图可知,想要IO读写次数最少,就要带权路径长度最优,带权路径长度最优时为哈夫曼树

最佳归并树(本质是一颗哈夫曼树):

在这里插入图片描述当归并树为哈夫曼树时,IO次数最小

所有的初始归并段一定能构造出一颗完美的哈夫曼树吗?

答:不是
在这里插入图片描述
我们称这种初始归并段不够而补充的段称为虚短

怎么选择补充虚短的个数?

在这里插入图片描述

在这里插入图片描述

总的节点个数 = 孩子节点总数+根节点,即:
度为0的节点+度为m的节点 = 孩子节点总数+根节点,即:
n0 + nm = m * nm + 1,即:
n0 = (m-1)nm + 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值