数据结构之排序(5)——外部排序

外部排序由于内存限制,需要多次读写外存进行排序。文章介绍了堆、胜者树和败者树在外部排序中的应用,以减少比较次数和提高效率。败者树在每次比较时只需与兄弟节点比较,降低了比较复杂性。置换-选择排序可以生成更大的初始块,最佳归并树则用于优化归并过程,确保归并段大小相近以减少不必要的IO操作。
摘要由CSDN通过智能技术生成

外部排序

内存有限,不能一次将数据全部导入内存排序,于是有了外部排序。

例如,一个含有2000个记录的文件,每个磁盘可容纳250个记录,则该文件包含8个磁盘块。
1. 先用内部排序方法,每次读一个磁盘块,排完序后写到文件,共需8次读和8次写,生成8个有序文件。
2. 然后作二路归并排序,每次往内存读入两个磁盘块,进行归并,一旦输出缓冲区满了就写到磁盘上,第一轮下来,读写16次,有了4个有序文件;然后进行第二轮,读写16次,2个有序文件;最后再读写16次,1个有序文件,结束。

一共进行了4次外存读写(1次内排,3轮内部归并的读写)

外排总时间=内部排序总时间+外存信息读写时间+内部归并时间

tES=rtIS+dtIO+S

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值