败者树

败者树

多路平衡归并带来的问题

外部排序时间开销=读写外存的时间+内部排序所需时间+内部归并所需 时间

S=logkr,kS

使用k路平衡归并策略,选出一个最小元素需要对比关键字(k-1)次, 导致内部归并所需时间增加

8路平衡归并,从八个归并段中选出一个最小元素需要对比关键字7次

可用“败者树”进行优化

什么是“败者树”

败者树的构造

败者树——可视为一棵完全二叉树(多了一个头头)。k个叶节点分别是当前参加比较的元素,非叶子结点用来记忆左右子树中的”失败者“,而让优胜者往上继续进行比较,一直到根节点。

败者树的使用

败者树在多路平衡归并中的应用

对于k路归并,第一次构造败者树需要对比关键字k-1次

有了败者树,选出最小元素,只需要对比关键字

log2k

败者树的实现思路

知识回顾

本文作者:Jev_0987

本文链接:https://www.cnblogs.com/jev-0987/p/13322219.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Jev_0987  阅读(1976)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起