如何在10亿个数中找到前1000大的数?
2019独角兽企业重金招聘Python工程师标准>>>
如何在10亿个数中找到前1000大的数?
定位
TopN问题
算法
- 排序不是最优的解决方案;
- 可以考虑分治法;
- 类似快速排序中的partition的操作,随机选一个数t,然后对整个数组进行partition,会得到两部分,前一部分数都大于t,后一部分都小于t,时间复杂度O(n)。
注意点
10亿个数加载进内存大概需要4G内存;
若一个机器资源有限,可采用分布式的思想,切分数据后分别计算然后汇总;
如果只有一台资源有限的机器,可以使用小顶堆(每个节点都要比它的左右子节点要小);
从文件中读取出数据,遍历一遍即可,比堆顶的数据大就替换,然后调整小顶堆;
转载于:https://my.oschina.net/mengzhang6/blog/3054401
如何在10亿个数中找到前1000大的数?相关推荐
- n个数中输出前m大的数
描述 n个数,要求输出其中的m个最大数 想法1 开辟辅助数组,用插入排序,将前m最大数插入到辅助数组中,时间复杂度O(n*m) 想法2 类似快速排序的想法,将前m大的数都聚到最左边,再进行一次排序输出 ...
- 【面试现场】如何在10亿数中找出前1000大的数
小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司. 之前小史在BAT三家的面试中已经挂了两家,今天小史去了BAT中的最后一家面试了. 简单的 ...
- 如何在 10 亿数中找出前 1000 大的数?
作者 | channingbreeze 责编 | 胡巍巍 小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司. 之前小史在BAT三家的面试中已 ...
- 谈从10亿个数中找出前10万个最大的
谈从10亿个数中找出前10万个最大的 期的实验显示10亿个浮点数大概占据3G左右的空间,因此全部一次性读入内存目前在个人PC上是不太现实的.本次讨论不考虑内存等等,只考虑算法. 如果一次性比较排序,然 ...
- 在10亿个数中找出前1000个最大的
在10亿个数中找出前1000个最大的 假设现在有一个文件,里面存放了10亿个整数,需要找出前1000个最大的. 方法: 1.普通排序,部分排序:几乎不可取. 2.分治法:随机选一个数t,然后对整个数组 ...
- 如何在10亿数中找出前1000大的数
1.排序方法 首先能想到的就是先排序,然后取前1000个数,或者部分排序,只排出前1000个数就行 缺点:这些方法的时间复杂度都比较高 2,分治法 可以使用分治法,这有点类似快排中partition的 ...
- 海量数据处理 - 10亿个数中找出最大的10000个数(top K)
海量数据处理 - 10亿个数中找出最大的10000个数(top K问题) 版权声明:本文为博主原创文章,未经博主允许不得转载 前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望 ...
- 10亿个数中找出最大的10000个数
转载自 海量数据处理 - 10亿个数中找出最大的10000个数(top K问题) 前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅 ...
- 10亿个数中找出最大的10000个数(top K问题)
原博链接: https://blog.csdn.net/cbjcry/article/details/84917432 问题引入:10亿个数中找出最大的10000个数(top K问题) top K问题 ...
最新文章
- 「UI 测试自动化selenium」汇总
- leetcode python 011
- java shark_JAVA项目开发笔记(3)Shark部分: Shark API | 学步园
- 139社区改版能给我们带来什么?
- scala学习手记2 - scala中的循环
- java编辑简单文本编辑器_简单文本编辑器
- 祝各位MM们节日快乐!
- 无线网首选dns服务器怎么设置,怎么设置无线路由器dns
- 数字信号处理(自学篇)
- tomcat发布asp网站的解决办法(转)
- 前端知识-JavaScript事件驱动特性
- php表格中的caption,html中caption标签的使用方法及实例详解
- 程序员的奋斗史(二十八)——寒门再难出贵子?
- latex 在线表格生成
- ftp服务器覆盖文件,ftp 覆盖 服务器 文件
- 《荒漠甘泉》4月19日
- 一个最骚的面包屑导航
- Foxmail只能接收邮件,不能发邮件,Mcafee需设置
- WorkSheet 的方法:add、delete、activate和select、copy、move;属性:name、visible
- 登山安化云台山风景区山巅,畅游云海