海量数据处理面试题(1) 找出两文件种包含的相同的url
来源:互联网 发布:童装网络营销策划书 编辑:程序博客网 时间:2024/06/05 22:35
问题:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?
分析:50亿个url,每个url64字节,就是320G,显然是无法一次读入内存的。因此这里需要采用分治法。
方案:分治法,分支方法:哈希
步骤:
如图所示:
1 将AB两个文件,用相同的哈希函数,分解为1000个独立哈希值相同的小文件,这里哈希函数的设计是个重点。
2 哈希值不同的url必然不在序号对应的文件中,因此只要在序号对应的两个文件中进行互相匹配即可。
3 比较每对小文件时,可以使用hash_set。
把url换成数字的话,哈希函数更容易构造。
阅读全文
0 0
- 海量数据处理面试题(1) 找出两文件种包含的相同的url
- 99%的海量数据处理面试题
- 99%的海量数据处理面试题
- 99%的海量数据处理面试题
- 边读边捋【july的】海量数据处理面试题
- 99%的海量数据处理面试题
- 海量数据处理面试题(july的博客)
- 99%的海量数据处理面试题
- 99%的海量数据处理面试题
- 海量数据处理面试题
- 海量数据处理面试题
- 海量数据处理面试题
- 海量数据处理面试题
- 海量数据处理面试题
- 海量数据处理面试题
- 面试题:海量数据处理
- 海量数据处理面试题
- 海量数据处理面试题
- python进程间通信
- 深入理解 Session 与 Cookie
- 算法系列(三)插入排序的两种改进:规避边界检测和取消交换(Java实现)
- UE4中灯光和天空大气的设置说明
- HTTP协议
- 海量数据处理面试题(1) 找出两文件种包含的相同的url
- 378. Kth Smallest Element in a Sorted Matrix (二分)
- Java虚拟机类加载的过程
- 机器学习系统设计(1)——第一个机器学习应用
- 排序算法——堆排序
- 大数取模:一般取模+技巧取模+快速幂取模+欧拉函数(费马小定理)
- nodejs中实现路由功能(2017-09-01 17:37) 420禁止评论编辑 | 置顶 | 删除 | 分类 nodejs中实现路由功能
- MongoDB3.x中添加用户和权限控制
- vyos