14、二叉树的morris遍历等

统计热词

有一个包含100亿个URL的大文件,假设每个URL占用64B,请找出其中所有重复的URL
【补充】
某搜索公司一天的用户搜索词汇是海量的(百亿数据量),请设计一种求出每天热门Top100
词汇的可行办法

多个小文件的大根堆,然后把每个大根堆的堆顶拿出来组成一个大根堆
14、二叉树的morris遍历等_第1张图片

总堆:
14、二叉树的morris遍历等_第2张图片
甲是最高的,已经记录了,就回到它曾经所在的大根堆(二号堆),把它删掉,然后把二号堆下一个放到新的大根堆,周而复始,直到总堆里弹出了100个。

出现两次的数

32位无符号整数的范围是0~4294967295,现在有40亿个无符号整数,可以使用最多1GB的
内存,找出所有出现了两次的数。

分成多个小文件(硬盘空间),然后对每个小文件统计
14、二叉树的morris遍历等_第3张图片
【补充】
可以使用最多10MB的内存,怎么找到这40亿个整数的中位数?

你可能感兴趣的:(左神算法,java,开发语言)