- 1
- 0
- 约1.03万字
- 约 57页
- 2019-07-16 发布于四川
- 举报
第8章 外部排序 8.1 外部排序的方法 8.1.1 外部排序的方法 8.1.2 多路平衡归并 8.1.3 置换-选择排序 8.2 最佳归并树 当记录以文件的形式存于磁盘上时,其排序过程主要分为两个阶段: 例:设有一个包含4500个记录的输入文件。现用一台其内存至多可容纳750个记录的计算机对该文件进行排序。输入文件放在磁盘上,磁盘每个页块可容纳250个记录, 这样全部记录可存储在 4500 / 250=18 个页块中。输出文件也放在磁盘上, 用以存放归并结果。 若把内存区域等份地分为 3 个缓冲区。其中的两个为输入缓冲区, 一个为输出缓冲区, 可以在内存中利用简单 2 路归并函数 merge( ) 实现 2 路归并。 首先, 从参加归并排序的两个输入归并段 R1 和 R2 中分别读入一块, 放在输入缓冲区1 和输入缓冲区2 中。然后在内存中进行 2 路归并,归并结果顺序存放到输出缓冲区中。 一般地,若总元素个数为n,磁盘上每个页块可容纳b个元素,内存缓冲区可容纳i个页块,则每个初始归并段长度为len = i * b,可生成m = ?n / len? 个等长的初始归并段。在做2路归并排序时,第一趟从m个初始归并段得到 ?m/2? 个归并段,以后各趟将从p (p 1) 个归并段得到 ?p / 2? 个归并段,总归并趟数等
原创力文档

文档评论(0)