最佳归并树:减少外存读写次数

📅 发布时间:2026/9/27 5:12:34
最佳归并树:减少外存读写次数
最佳归并树:减少外存读写次数外部排序的最后一步是归并多个有序子文件。但归并的顺序不同,总读写次数差别很大。今天来讲讲如何用"哈夫曼树"的思想找到最优归并方案。一、问题:归并顺序影响代价假设有 4 个有序子文件,长度分别是:A: 10MBB: 20MBC: 30MBD: 40MB方案1:顺序归并(A+B → AB, AB+C → ABC, ABC+D → 最终)第1次:10+20 = 30MB 读写第2次:30+30 = 60MB 读写第3次:60+40 = 100MB 读写总 I/O = 30 + 60 + 100 = 190MB方案2:平衡归并(A+B → AB, C+D → CD, AB+CD → 最终)第1次:10+20 = 30MB 读写第2次:30+40 = 70MB 读写第3次:30+70 = 100MB 读写总 I/O = 30 + 70 + 100 = 200MB等等,方案1反而更少?让我重新算一个更明显的例子。方案1:顺序