败者树
败者树
多路平衡归并带来的问题
外部排序时间开销=读写外存的时间+内部排序所需时间+内部归并所需 时间
使用k路平衡归并策略,选出一个最小元素需要对比关键字(k-1)次, 导致内部归并所需时间增加
8路平衡归并,从八个归并段中选出一个最小元素需要对比关键字7次
可用“败者树”进行优化
什么是“败者树”
败者树的构造
败者树——可视为一棵完全二叉树(多了一个头头)。k个叶节点分别是当前参加比较的元素,非叶子结点用来记忆左右子树中的”失败者“,而让优胜者往上继续进行比较,一直到根节点。
败者树的使用
败者树在多路平衡归并中的应用
对于k路归并,第一次构造败者树需要对比关键字k-1次
有了败者树,选出最小元素,只需要对比关键字
败者树的实现思路
知识回顾
本文作者:Jev_0987
本文链接:https://www.cnblogs.com/jev-0987/p/13322219.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步