计算机内存只有1G,如何排序10G的文件,文件里是int整数

为了讲解方便,这里假设内存只能存放3个整数,文件里有12个整数,文件里的整数是

506010701530208025403545

1.先读取3个整数到内存中,构建小顶堆,将最小值写入文件中,然后从剩余的9个整数中读取一个放到内存中,如果这个数比刚写入到文件中的数大,则把这个数插入到小顶堆中,重新调整小顶堆结构,将最小值写入文件中,否则把这个数暂放在一边不处理。这样可以保证文件中的整数是排好序的。

(1)

(2)

(3)

(4)

(5)

此时文件1的写入就结束了。

(6)

(7)

与文件1的写入过程一样,最终文件2的内容是:

1520253035404580

2.对新生成的文件采用多路归并排序。

(1)

(2)

......

(3)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值