一句话总结:内存无法装下,用比较速度最快的数据结构。
先找最大的1000个整数
1、内存无法装下:先取出1001个整数,构建一个最小堆,堆顶永远是最小的整数。
2、比较:从剩余的整数中一次取出一个,跟最小堆堆顶相比,如果比堆顶小,就pass掉,接着取;如果比最小堆堆顶大,那么将之替换掉堆顶,然后调整最小堆
3、结果:100亿个整数全部操作完后,抛开堆顶,剩下的1000个就是最大的1000个整数。
找最小的1000个整数用最大堆就可以了
一句话总结:内存无法装下,用比较速度最快的数据结构。
先找最大的1000个整数
1、内存无法装下:先取出1001个整数,构建一个最小堆,堆顶永远是最小的整数。
2、比较:从剩余的整数中一次取出一个,跟最小堆堆顶相比,如果比堆顶小,就pass掉,接着取;如果比最小堆堆顶大,那么将之替换掉堆顶,然后调整最小堆
3、结果:100亿个整数全部操作完后,抛开堆顶,剩下的1000个就是最大的1000个整数。
找最小的1000个整数用最大堆就可以了