首页 > 编程语言 > 详细

有意思的算法题:有10个文件,每个文件大概有10G,求里面最大的100个数;

时间:2019-03-28 10:07:54      阅读:515      评论:0      收藏:0      [点我收藏+]

算法思路 1:

第一个阶段:对于单个10G文件而言

1. 初始化:先取100个数,构建最小堆;

开始比较:

2. 取一个数 A,与最小堆的根节点进行比较;

3. 如果 A > 最小堆根节点,则替换根节点,否则,重复第2步进行下一轮比较;

4. 替换根节点后,重新构建最小堆

5. 重复以上2,3,4步骤,直至比较完整个文件的数字;

以上步骤可以获取该10G文件的100个最大的数字,10个文件用10个线程同时执行;

第二个阶段:对10个文件的各自的100个数,总共1000个数,进行第二轮比较

6. 我的思路还是通过以上1-5部的思路获取最终结果;

 

有意思的算法题:有10个文件,每个文件大概有10G,求里面最大的100个数;

原文:https://www.cnblogs.com/outpointexception/p/10612984.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!