读书笔记之《数据结构》---第十一章 外部排序

本章目录
1.外存信息的存储
2.外部排序的方法
3.多路归并实现
4.置换-选择排序
5.最佳归并树

外存信息的存储
计算机的两种存储器:内存储器,外存储器
磁带信息的存储,磁带上相邻的两组字符之间要留一个空白区,称为间隙IRG。
在这里插入图片描述
在这里插入图片描述

外部排序的方法
外部排序由两个独立的阶段组成:
1.按可用内存大小,将外存上含n个记录的文件分成若干长度为l的子文件或端,这些子文件和段称为归并段或顺串,将这些段一次读入内存,然后进行内部排序,将获得的有序的子文件重新写入外存。
2.对这些有序子文件进行逐趟归并,直至得到整个有序文件。
2-路平衡归并:
在这里插入图片描述
5-路平衡归并:
在这里插入图片描述

多路归并实现
k路归并中,每得到一个有序段中的记录需要进行k-1次比较。
采用败者树来减少比较次数
取最小值的败者树的构造方法:数组B记录输入的k个关键字(即K-路归并中k个子文件中分别取一个关键字),数组S记录败者,S数组的初始值都为最小整数MININT,S[0]记录冠军。数组B中的数据B[i],依次与其父节点S[(k+i)/2](记录该结点和其兄弟结点中的败者)比较,如果该结点大于父节点,则该结点为新败者,记录到S[(k+i)/2]结点中,用t记录胜者,将胜者再与其父节点比较,做同样处理,直至遍历完B中k个的记录,则t中记录的为最终的胜者。
败者树的调整过程:是败者树构造中的一次遍历过程,将最终胜者取出后从该子文件中继续取后一个记录,放入B中相应位置,进行一次从下到上的遍历。
算法如下:
在这里插入图片描述
在这里插入图片描述

置换-选择排序
置换-选择排序的目的是为了得到更长的初始归并段,从而减少归并段的数量,从而减少归并的次数。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
算法如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最佳归并树
在各个归并段的长度不相等时,可以根据归并段的长度构造最佳归并树。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值