BD面试题1-两个大文件中找出公共记录[转载]

转自:https://blog.csdn.net/tiankong_/article/details/77234726#commentBox

1.题目

给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?

2.思考过程

//我看见这个题就啥也没想到,想不到哈希啊。。。

可以使用哈希,对a文件中的所有进行遍历,再对b进行遍历,但是由于文件过大,并且还要给哈希表分配空间,所以一次性建立哈希表希望不大。

3.解决办法

50亿*64B=320G,一个G相当于9个0.

那么可以对每个url得到的hash值,再%1000,这样可以将其分为1000个文件,每个大约300M,那么总共就大约320G了;

对b文件也用同样的方法进行映射,那么相同的url肯定被映射到同一文件了;

那么问题就变成了比较1000个小文件中的了,这就比较好办了,就用hash就可以了

转载于:https://www.cnblogs.com/BlueBlueSea/p/9638176.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值