问题4:搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。假设目前有一千万个记录,这些查询串的重复读比较高,虽然总数是1千万,但是如果去除重复和,不超过3百万个。一个查询串的重复度越高,说明查询它的用户越多,也就越热门。请你统计最热门的10个查询串,要求使用的内存不能超过1G。
思路:引用大数据处理偏的第四题,3百万*255=755M<1G,故可以直接使用hash_map来统计查询串的出现次数,然后使用10个元素的
最小堆来对频率进行排序。
思路2:用hash,将hash值算出,相同的排一起,再用总的索引(Map结构,key存放单词和value存放出现频率),缺点:IO次数较多