面试题:从10G个数中找到中数

在一个文件中有 10G 个整数,乱序排列,要求找出中位数。(中间大小的数)

内存限制为 2G。

解法:

假设都是4字节的数 (更长的也一样)

那么一共是32个位

按照前N位进行分组统计,

例如000000  2个

      000001 100个

类推

那么可以找出中间的几组数,  进一步分组就可以找到中间数

由于内存是2g 那么第一次分组前28位是最理想最快的情况

算法复杂度是O1

原文地址:https://www.cnblogs.com/PurpleTide/p/1968484.html