前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据量下求最大的K个数问题

大数据量下求最大的K个数问题

作者头像
名字是乱打的
发布2021-12-22 15:31:40
2540
发布2021-12-22 15:31:40
举报
文章被收录于专栏:软件工程软件工程
思路:

维护一个容量为k的小根堆,以流的方式读取数据,向堆中添加数据 如果小根堆没满直接填 满了之后比较当前读取数据和堆顶数组,如果当前数据更大,弹出堆顶,添加大数

注意:

对于大数据问题如果有多台机器也可以分割文件分别取最大的K个,然后再逐渐合并

代码语言:javascript
复制
public class arrTest {
    public static void main(String[] args){
        PriorityQueue<Integer> queue=new PriorityQueue<>(3);
        int[] arr=new int[]{2,1,4,6,5,6,2,7};
        getMin3(arr,queue);
        while (!queue.isEmpty())
        {
            System.out.print(queue.poll());
        }
    }
    public static void  getMin3(int[] arr, PriorityQueue<Integer> queue){
        for(int i=0;i<arr.length;i++){
            if (queue.size()!=3){
                queue.add(arr[i]);
            }else {
                if (arr[i]>queue.peek()){//如果当前数字大于小根堆最小数字
                    queue.poll();
                    queue.add(arr[i]);
                }
            }
        }
    }

}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/10/28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 思路:
  • 注意:
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档