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

文章描述了在内存容量有限的情况下,如何通过构建小顶堆和多路归并排序算法来保证文件中的12个整数有序。首先读取3个整数形成小顶堆,每次从文件中读取一个数并与堆顶比较,确保文件中的数始终有序,然后对新生成的文件进行多路归并排序。
摘要由CSDN通过智能技术生成

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

 

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

这样可以保证文件中的整数是排好序的。

 

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值