1 从一亿个数中找出最大的一万个数:(前10000个元素构建最小堆,后续元素与根节点比较,大于放进去,小于或等于不处理)

用前一万个数初始化一个固定大小为10000的最小堆,这时根节点是这10000个数里最小的一个。

把后续的数依次与最小堆的根节点比较,如果大于则放进最小堆(这个操作同时会弹出一个元素并改变根节点),小于等于不做处理。

这个算法的复杂度几乎接近于O(n)

2 从一亿个数中找出最小的一万个数:(前10000个元素构建最大堆,后续元素与根节点比较,小于放进去,大于或等于不处理)

用前一万个数初始化一个固定大小为10000的最大堆,这时根节点是这10000个数里最大的一个。

把后续的数依次与最大堆的根节点比较,如果小于则放进最大堆(这个操作同时会弹出一个元素并改变根节点),大于等于不做处理。

这个算法的复杂度几乎接近于O(n)

3  同样适用于从n个数中找出前K个大的数,

还有另外两种方法,k很小时可以用冒泡排序,k比较大时用快速排序

从一亿个数中找出最大的一万个数或最小的一万个数相关推荐

  1. 谈从10亿个数中找出前10万个最大的

    谈从10亿个数中找出前10万个最大的 期的实验显示10亿个浮点数大概占据3G左右的空间,因此全部一次性读入内存目前在个人PC上是不太现实的.本次讨论不考虑内存等等,只考虑算法. 如果一次性比较排序,然 ...

  2. 海量数据处理 - 10亿个数中找出最大的10000个数(top K)

    海量数据处理 - 10亿个数中找出最大的10000个数(top K问题) 版权声明:本文为博主原创文章,未经博主允许不得转载 前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望 ...

  3. 10亿个数中找出最大的10000个数

    转载自  海量数据处理 - 10亿个数中找出最大的10000个数(top K问题) 前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅 ...

  4. 在10亿个数中找出前1000个最大的

    在10亿个数中找出前1000个最大的 假设现在有一个文件,里面存放了10亿个整数,需要找出前1000个最大的. 方法: 1.普通排序,部分排序:几乎不可取. 2.分治法:随机选一个数t,然后对整个数组 ...

  5. 10亿个数中找出最大的10000个数(top K问题)

    原博链接: https://blog.csdn.net/cbjcry/article/details/84917432 问题引入:10亿个数中找出最大的10000个数(top K问题) top K问题 ...

  6. 从十亿个数中找出前1000个最大的数的算法

    10亿个数中找出1000个最大的数的算法思路: 1,先拿出前1000个数字,并排序,找出最小值为 minValue .    2,  然后再依次拿出1000个数字,找出最大值为 tempMaxValu ...

  7. 1亿个数中找出最大的100个数(top K问题)

    如何在1亿个数中找出最大的100个数(top K问题) ​ 最容易想到的方法是将数据全部排序,然后在排序后的集合中进行查找,最快的排序算法的时间复杂度一般为O(nlogn),如快速排序.但是在32位的 ...

  8. 【面试现场】如何在10亿数中找出前1000大的数

    小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司. 之前小史在BAT三家的面试中已经挂了两家,今天小史去了BAT中的最后一家面试了. 简单的 ...

  9. 如何在 10 亿数中找出前 1000 大的数?

    作者 | channingbreeze 责编 | 胡巍巍 小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司. 之前小史在BAT三家的面试中已 ...

最新文章

  1. python3读写excel文件_python3 循环读取excel文件并写入json操作
  2. 学会利用杠杆,阻碍你成功的,或许恰恰是你认为正确的思维,能力、效率、杠杆三个因素,决定了你一生的发展...
  3. 4Python切片功能剖析
  4. lazada发货_Lazada 怎么发货:Lazada 订单发货流程
  5. Linux搜寻文件或目录命令解析
  6. jqgrid本地数据例子_FMS财务系统:日常数据核对与处理
  7. 为什么CSDN登陆是明文传输账户密码
  8. micropython 人脸识别检测_基于ESP8266的人脸识别球锁开锁方案
  9. pos机Project v1.1
  10. Matplotlib绘制半圆形
  11. 推荐几个在线编程学习的网站,程序员必备
  12. 浅谈股价预测模型:你是否掉进机器学习的陷阱
  13. 拆弹实验-phase_1
  14. Caused by: java.lang.NoSuchMethodError: redis.clients.jedis.JedisPool.init(Lorg/apache/commons/poo
  15. 免费基金股票接口大全,macd,kdj,cci,威廉指标,神奇九转大全
  16. 03Java常用API-16. 日期Date类型及其常用方法
  17. 生活随记 - 春节快递延误的正确处理方式
  18. RIP协议;OSPF协议;BGP协议
  19. 计算机操作系统 - 目录1
  20. Postgres-XL数据库GTM——GTM and Global Transaction Management

热门文章

  1. uva662DP+回溯
  2. 基因序列比较 java实现
  3. iOS AVFoundation实现相机功能
  4. Beats:Beats processors
  5. Linux命令行如何设置MySQL远程连接
  6. 安装abuntu时候联想拯救者R7000P怎么进入bios
  7. 导出文件提示rpc服务器不可用,rpc服务器不可用怎么办 RPC服务器不可用解决方法有哪些...
  8. ArcEngine——使用GP工具导出数据
  9. Win7下安装Qt3D库
  10. KPCA提取轴承振动信号的主成分特征