median - 计算 1 万亿的中位数(或近似中位数)翻倍
问题描述
这是 Glassdoor 上发布的一个面试问题。
考虑一个包含 1 万亿个 double 的文件。如何找到中位数或近似中位数?您的计算机无法读取全部 1 万亿个 double。并行化算法是可以接受的。
最后一部分表明我可能可以使用中位数的中位数,甚至可以使用一些并行快速排序。对于前者,只需将文件分配给一定数量的处理器,以便每个进程都可以将文件的一部分读入内存。
我还认为@DJClayworth 在计算十亿数字的中位数中给出的方法也可以使用。我认为这篇文章中的其他技术是不可行的。
有哪些其他方法可以用于此?我可能对可以找到具有不错概率的近似中位数的随机算法感兴趣。
解决方案
推荐阅读
- r - 在堆叠的 ggplot2 图上设置自定义标签
- ios - 显示屏幕时如何移动到幻灯片
- windows - OpenSSL NMAKE 未解析的外部符号
- javascript - 如何使用选择选项在javascript中制作动态表格列
- terraform - 创建 IAM 角色并将策略附加到该角色时出错
- nginx - Nginx proxy_set_header 未添加到 POST 请求的标头中
- matlab - 如何从 MATLAB 中的大型数据集生成 CDF?
- swift - Swift 5:'substring(to:)' 已被弃用
- docker - gitlab 容器的主机 ssh 密钥
- canvas - 在 SharePoint 页面上嵌入来自不同租户的 PowerApps