HelloCoder HelloCoder
首页
《Java小白求职之路》
《小白学Java》
计算机毕设
  • 一些免费计算机资源
  • 脚手架工具
  • 《从0到1学习Java多线程》
  • 《从0到1搭建服务器》
  • 《可观测和监控》
  • 《k8s学习心得》
随笔
关于作者
首页
《Java小白求职之路》
《小白学Java》
计算机毕设
  • 一些免费计算机资源
  • 脚手架工具
  • 《从0到1学习Java多线程》
  • 《从0到1搭建服务器》
  • 《可观测和监控》
  • 《k8s学习心得》
随笔
关于作者
  • 《LearnJavaToFindAJob》

    • 导读

    • 【初级】6~12k档

    • 【中级】12k-26k档

    • 【高级】26k+档

    • 大厂面试题

      • IBM面试题-不借助变量交换两个数
      • 奇怪的面试题
      • 如何停止一个运行的线程
      • 快手

      • 美团

      • 腾讯

        • 海量数据查找某个数
        • 海量数据问题
        • 线程池要设置多大?
      • 阿里

    • 求职建议

    • 面经

  • LearnJavaToFindAJob
  • 大厂面试题
  • 腾讯
HaC
2022-06-02
目录

海量数据查找某个数

# 1、海量数据中找出中位数

比如说一个 500G 的文件,里面有long类型的乱序整数,但是内存只有 2G ,如何找出中位数。

首先,只有 2G的内存,是无法一次性处理500G的文件的

如果是 10亿 个int类型的数字呢?

10亿个int类型的数据,一次性加载到内存,需要 10 * 10^8 * 4B 约等于 4GB 内存 ,就是说 10亿个 int 类型的数据占用4GB的磁盘空间。

也无法一次性处理,所以只能切割,每次读取一部分的文件内容。

上次更新: 2026-06-21 17:47:53
最近更新
01
MySQL支持的锁有哪些
06-21
02
HTTP 是不保存状态的协议, 如何保存用户状态
06-21
03
WebSocket、短轮询、长轮询的区别
06-21
更多文章>
Theme by Vdoing | Copyright © 2020-2026 HaC
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式