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

来源:互联网 发布:缴费软件有哪些 编辑:程序博客网 时间:2024/05/17 04:46

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

先找最大的1000个整数

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

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

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


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

阅读全文
0 0
原创粉丝点击