数据结构之外部排序:最佳归并树
外部排序:最佳归并树归并树的定义:例:最佳归并树(本质是一颗哈夫曼树):所有的初始归并段一定能构造出一颗完美的哈夫曼树吗?怎么选择补充虚短的个数?归并树的定义:例:另一种理解方式:1、每个数字代表了一个归并段的长度2、121就代表了总的数据元素的个数3、树的深度代表了读或写的次数4、总的IO的读写次数=(读+写)✖元素个数 = (2+2)×121=484但是这个只是一颗普通...
·
思维导图:
归并树的定义:
例:
另一种理解方式:
1、每个数字代表了一个归并段的长度
2、121就代表了总的数据元素的个数
3、树的深度代表了读或写的次数
4、总的IO的读写次数=(读+写)✖元素个数 = (2+2)×121=484
但是这个只是一颗普通的二叉树,由上图可知,想要IO读写次数最少,就要带权路径长度最优,带权路径长度最优时为哈夫曼树
最佳归并树(本质是一颗哈夫曼树):
当归并树为哈夫曼树时,IO次数最小
所有的初始归并段一定能构造出一颗完美的哈夫曼树吗?
答:不是
我们称这种初始归并段不够而补充的段称为虚短
怎么选择补充虚短的个数?
总的节点个数 = 孩子节点总数+根节点,即:
度为0的节点+度为m的节点 = 孩子节点总数+根节点,即:
n0 + nm = m * nm + 1,即:
n0 = (m-1)nm + 1

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)