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

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

内存限制为 2G。

解法:

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

那么一共是32个位

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

例如000000  2个

      000001 100个

类推

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

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

算法复杂度是O1

posted on 2011-03-01 23:36  听说读写  阅读(1102)  评论(0编辑  收藏  举报

导航