从一亿个数中找出最大的一万个数或最小的一万个数
1 从一亿个数中找出最大的一万个数:(前10000个元素构建最小堆,后续元素与根节点比较,大于放进去,小于或等于不处理)
用前一万个数初始化一个固定大小为10000的最小堆,这时根节点是这10000个数里最小的一个。
把后续的数依次与最小堆的根节点比较,如果大于则放进最小堆(这个操作同时会弹出一个元素并改变根节点),小于等于不做处理。
这个算法的复杂度几乎接近于O(n)
2 从一亿个数中找出最小的一万个数:(前10000个元素构建最大堆,后续元素与根节点比较,小于放进去,大于或等于不处理)
用前一万个数初始化一个固定大小为10000的最大堆,这时根节点是这10000个数里最大的一个。
把后续的数依次与最大堆的根节点比较,如果小于则放进最大堆(这个操作同时会弹出一个元素并改变根节点),大于等于不做处理。
这个算法的复杂度几乎接近于O(n)
3 同样适用于从n个数中找出前K个大的数,
还有另外两种方法,k很小时可以用冒泡排序,k比较大时用快速排序
从一亿个数中找出最大的一万个数或最小的一万个数相关推荐
- 谈从10亿个数中找出前10万个最大的
谈从10亿个数中找出前10万个最大的 期的实验显示10亿个浮点数大概占据3G左右的空间,因此全部一次性读入内存目前在个人PC上是不太现实的.本次讨论不考虑内存等等,只考虑算法. 如果一次性比较排序,然 ...
- 海量数据处理 - 10亿个数中找出最大的10000个数(top K)
海量数据处理 - 10亿个数中找出最大的10000个数(top K问题) 版权声明:本文为博主原创文章,未经博主允许不得转载 前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望 ...
- 10亿个数中找出最大的10000个数
转载自 海量数据处理 - 10亿个数中找出最大的10000个数(top K问题) 前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅 ...
- 在10亿个数中找出前1000个最大的
在10亿个数中找出前1000个最大的 假设现在有一个文件,里面存放了10亿个整数,需要找出前1000个最大的. 方法: 1.普通排序,部分排序:几乎不可取. 2.分治法:随机选一个数t,然后对整个数组 ...
- 10亿个数中找出最大的10000个数(top K问题)
原博链接: https://blog.csdn.net/cbjcry/article/details/84917432 问题引入:10亿个数中找出最大的10000个数(top K问题) top K问题 ...
- 从十亿个数中找出前1000个最大的数的算法
10亿个数中找出1000个最大的数的算法思路: 1,先拿出前1000个数字,并排序,找出最小值为 minValue . 2, 然后再依次拿出1000个数字,找出最大值为 tempMaxValu ...
- 1亿个数中找出最大的100个数(top K问题)
如何在1亿个数中找出最大的100个数(top K问题) 最容易想到的方法是将数据全部排序,然后在排序后的集合中进行查找,最快的排序算法的时间复杂度一般为O(nlogn),如快速排序.但是在32位的 ...
- 【面试现场】如何在10亿数中找出前1000大的数
小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司. 之前小史在BAT三家的面试中已经挂了两家,今天小史去了BAT中的最后一家面试了. 简单的 ...
- 如何在 10 亿数中找出前 1000 大的数?
作者 | channingbreeze 责编 | 胡巍巍 小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司. 之前小史在BAT三家的面试中已 ...
最新文章
- python3读写excel文件_python3 循环读取excel文件并写入json操作
- 学会利用杠杆,阻碍你成功的,或许恰恰是你认为正确的思维,能力、效率、杠杆三个因素,决定了你一生的发展...
- 4Python切片功能剖析
- lazada发货_Lazada 怎么发货:Lazada 订单发货流程
- Linux搜寻文件或目录命令解析
- jqgrid本地数据例子_FMS财务系统:日常数据核对与处理
- 为什么CSDN登陆是明文传输账户密码
- micropython 人脸识别检测_基于ESP8266的人脸识别球锁开锁方案
- pos机Project v1.1
- Matplotlib绘制半圆形
- 推荐几个在线编程学习的网站,程序员必备
- 浅谈股价预测模型:你是否掉进机器学习的陷阱
- 拆弹实验-phase_1
- Caused by: java.lang.NoSuchMethodError: redis.clients.jedis.JedisPool.init(Lorg/apache/commons/poo
- 免费基金股票接口大全,macd,kdj,cci,威廉指标,神奇九转大全
- 03Java常用API-16. 日期Date类型及其常用方法
- 生活随记 - 春节快递延误的正确处理方式
- RIP协议;OSPF协议;BGP协议
- 计算机操作系统 - 目录1
- Postgres-XL数据库GTM——GTM and Global Transaction Management