首页 > 解决方案 > 计算 1 万亿的中位数(或近似中位数)翻倍

问题描述

这是 Glassdoor 上发布的一个面试问题。

考虑一个包含 1 万亿个 double 的文件。如何找到中位数或近似中位数?您的计算机无法读取全部 1 万亿个 double。并行化算法是可以接受的。

最后一部分表明我可能可以使用中位数的中位数,甚至可以使用一些并行快速排序。对于前者,只需将文件分配给一定数量的处理器,以便每个进程都可以将文件的一部分读入内存。

我还认为@DJClayworth 在计算十亿数字的中位数中给出的方法也可以使用。我认为这篇文章中的其他技术是不可行的。

有哪些其他方法可以用于此?我可能对可以找到具有不错概率的近似中位数的随机算法感兴趣。

标签: medianrandomized-algorithm

解决方案


推荐阅读