海量数据,不能一次加载到内存中
最大K使用最小堆,最小K使用最大堆,这里以最大K为例
变形
题目:两个文件各存50亿个url,每个url64个字节,内存限制4G,找出A,B共同的url
bitmap一般是total/32 + 1个数组,从a[0]开始,每组是32bit表示,对应位的0或1表示十进制的0-31是否存在,可以用于快速排序,快速去重,快速查询
如何根据时间先后顺序对一亿用户进行排序
不知道你发现了没有,上面的解决思路其实存在漏洞。10 亿的关键词还是很多的。我们假设 10 亿条搜索关键词中不重复的有 1 亿条,如果每个搜索关键词的平均长度是 50 个字节,那存储 1 亿个关键词起码需要 5GB 的内存空间,而散列表因为要避免频繁冲突,不会选择太大的装载因子,所以消耗的内存空间就更多了。而我们的机器只有 1GB 的可用内存空间,所以我们无法一次性将所有的搜索关键词加入到内存中。
https://blog.csdn.net/luyafei_89430/article/details/13016093