找到100亿个URL中重复的URL及搜索词汇的TopK问题

题目:有一个包含100亿个url的大文件,假设每个url占用64B,请找出其中所有重复的url

补充问题:某搜索公司一天的用户搜索词汇是海量的,请设计一种求出每天热门的top 100 词汇的可行方法

 

思想:用哈希分流的思想来处理,把包含百亿数量的词汇文件分流到不同机器上,具体多少台机器根据面试官规定或者更多的限制来决定。对每一台机器来说,如果分到的数据量依然很大,比如内存不够或其它问题,可以再用哈希函数把每台机器的流文件拆成更小的文件处理。处理每一个小文件的时候,通过哈希表统计每种词及其词频,哈希表记录建立之后,再遍历哈希表,遍历过程中使用小根堆来选择topk。

 

 

大根堆用于升序排序(所以求最小的前k个数用大根堆),小根堆用于降序排序(所以求最大的前k个数(常见的topk问题,基本都是求最大的前k个数)用小根堆)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值