【面试算法题】内存放不下的大数据URL的相关去重等操作


原文链接1
原文链接2

题目一:有10 亿个 url,每个 url 大小小于 56B,要求去重,内存只给你4G

思路:

1.首先将给定的url调用hash方法计算出对应的hash的value,在10亿的url中相同url必然有着相同的value。

2.将文件的hash table 放到第value%n台机器上。

3.value/n是机器上hash table的值。

将文件分布在多个机器上,这样要处理网路延时。假设有n台机器。

首先hash文件得到hash value v

将文件的hash table 放到第v%n 台机器上。

v/n是机器上hash table的值。

分析:

将文件的url进行hash,得到值value,相同的url的文件具有相同的value,所以会被分配到同一台机器v%n上。在同一台机器上的重复的url文件具有相同的value/n值,如果出现了冲突,不同的url在同一台机器上也可能有相同的value/n值。在每个机器上将value/n值作为key,url值作为value构成hash表进行去重。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值