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

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

内存限制为 2G。

解法:

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

那么一共是32个位

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

例如000000  2个

      000001 100个

类推

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

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

算法复杂度是O1

转载于:https://www.cnblogs.com/PurpleTide/archive/2011/03/01/1968484.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值