从100亿个整数中找出最大/最小的1000个整数

一句话总结:内存无法装下,用比较速度最快的数据结构。

先找最大的1000个整数

1、内存无法装下:先取出1001个整数,构建一个最小堆,堆顶永远是最小的整数。

2、比较:从剩余的整数中一次取出一个,跟最小堆堆顶相比,如果比堆顶小,就pass掉,接着取;如果比最小堆堆顶大,那么将之替换掉堆顶,然后调整最小堆

3、结果:100亿个整数全部操作完后,抛开堆顶,剩下的1000个就是最大的1000个整数。


找最小的1000个整数用最大堆就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值