给定一个包含 100 亿个无符号整数的大型文件,使用最多 1G 内存,对此文件进行排序

一个无符号数大小4B

100亿个数大小为4*10^10B,一个G差不多是10^9B,因此差不多需要40G的内存,肯定无法同时加载进内存进行排序

因此思路是将40G划分为的1000个文件,每个文件大小为40M,对每个文件内进行排序,之后建立一个全局的小根堆(维护capacity为1000)

之后每次取小根堆顶i,写入总的文件,并取i对应文件的下一个数加入小根堆,重复以上过程

http://www.javashuo.com/article/p-muxyfppx-g.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值