思路
分析
1G内存为10亿字节,所以无法把100亿直接载入内存,所以我们可以通过哈希与位图的结合来处理该问题。先哈希到位图上,在把俩个位图按位与求其交集。
解法
1.我们可以申请100个vector空间,每一个vector空间保存初始化过的1亿个无符号整数。
2.用字符串哈希函数对每个url的MD5结果进行哈希,然后把字符串哈希函数得到的整数结果再进行二次哈希,每个整数都模上100,把该结果作为vector空间的下标。
3 再次把字符串哈希函数的结果模上1亿,把得到的结果在相应的vector中用直接定址法对相应元素赋值为1。
4 把第二个文件重复1-3步,也得到一个哈希过的vector的结果。
5 对相应的vector进行按位与。
6 把任意一个文件的vector结果取出,再对任一一个文件进行遍历,每取出一个url对其先MD5运算,再用字符串哈希再模上100,再找至相应vector中继续用字符串哈希结果模上1亿,再看在该vector中相应元素是否为1,如果为1将url输出不为1代表交集中无该url。