当前位置:网站首页>请问海量数据如何去取最大的K个
请问海量数据如何去取最大的K个
2022-06-30 20:00:00 【兔云程序】
这可能是形而上学很有深度一个算法题目,因为这个会的人能天马行空设计出绝妙的算法,不会的人可能连题目都无处下手。海量数据top K问题,在互联网大厂的产品中到处体现出来,比如微信的计步软件,统计出K名,然后进行排序。
当然类似的题目还有有一亿个浮点数,如何找出其中最大的10000个。这里面其实涉及代码技能就是内存的处理以及数据的去重优化,把本来需要占大量内存空间的海量数据通过各种方法处理出来。以下有几种方法,包括最蠢和最明智的方案,在面试中可以供你吹水。
内存允许的情况下,直接全部排序
这可能是最直接简单粗暴的方法,但是你懂的,我们的前提是海量数据,这个方法是一种方案,但是肯定不靠谱的。全部排序从大到小排序之后,我们直接取头部的K个,方法需要消耗大量内存并且不高效,做了很多无用功,不建议使用。当然如果在口谈面试中,你大脑短路的时候可以先提出这个。
内存允许的情况下,分治法
其实分治的思想里就包括快排和归并排序。思想先分都是将数据不断的分成N份,治是找到每份数据中最大的K个数。
最小堆法(也叫局部淘汰法)
一种局部淘汰法。先读取前K个数,建立一个最小堆。然后将剩余的所有数字依次与最小堆的堆顶进行比较,如果小于或等于堆顶数据,则继续比较下一个;否则,删除堆顶元素,并将新数据插入堆中,重新调整最小堆。当遍历完全部数据后,最小堆中的数据即为最大的K个数。
时间复杂度为O(n+m^2)(其中m为K,比如10000)
边栏推荐
- DEX文件解析 - method_ids解析
- 为什么一定要从DevOps走向BizDevOps?
- 新出生的机器狗,打滚1小时后自己掌握走路,吴恩达开山大弟子最新成果
- Web host iptables firewall security script
- Exness: the final value of US GDP unexpectedly accelerated to shrink by 1.6%
- 如何快速通过PMP考试?
- SecureCRTPortable的安装和使用(图文详解)
- Notes on modification of Jerry's test box pairing software [chapter]
- Data intelligence - dtcc2022! China database technology conference is about to open
- Torchdrug -- drug attribute prediction
猜你喜欢

Build your own website (20)

Why should offline stores do new retail?
![Jerry's touch key recognition process [chapter]](/img/3e/bb73c735d0a7c7a26989c65a432dad.png)
Jerry's touch key recognition process [chapter]

mysql主从同步
MySQL数据库误删回滚的解决

How unity pulls one of multiple components

杰理之触摸按键识别流程【篇】

Exness: liquidity series - liquidity cleaning and reversal, decision interval

DEX file parsing - Method_ IDS resolution

计网 | 【五 传输层、六 应用层】知识点及例题
随机推荐
基于slate构建文档编辑器
[ICLR 2021] semi supervised object detection: unbiased teacher for semi supervised object detection
Mistakes the project manager should not make
CADD课程学习(2)-- 靶点晶体结构信息
【论文阅读】Trajectory-guided Control Prediction for End-to-end Autonomous Driving: A Simple yet Strong Baseline
Jerry's question about long press boot detection [chapter]
Client请求外部接口标准处理方式
VB的基本语法
漏洞扫描工具大全,妈妈再也不用担心我挖不到漏洞了
How to pass the PMP Exam quickly?
Informatics Olympiad 1362: family problems
北京大学ACM Problems 1005:I Think I Need a Houseboat
Jerry's question about long press boot detection [chapter]
Client request external interface standard processing method
MySQL数据库误删回滚的解决
杰理之关于长按开机检测抬起问题【篇】
Meeting, onemeeting, OK!
Solution to rollback of MySQL database by mistake deletion
Encoding type of Perl conversion file
Is the project manager a leader? Can you criticize and blame members?