本文共 308 字,大约阅读时间需要 1 分钟。
1.有10个文件,每个文件1G,每个文件的每一行都存放的是用户的query,每个文件的query都可能重复。如何按照query的频度排序。
2.海量日志数据,提取出某日访问百度次数最多的那个IP。
对于这类问题, 通常要使用分而治之的思想, 因为内存中不能够存放的下所有的数据, 为了保证将海量数据分成几个小块后, 每个小块中的元素都互不相同, 也就是值相同的元素要被分到同一个数据块中, 可以使用hash的方法, hash(value) % n, n就是要分的块数, 这样在每个小块中在使用hash_map的方法统计每个value的频度, 再利用堆排序对每个小块的频度进行排序, 最后对所有的小块进行归并排序...
转载地址:http://mckqb.baihongyu.com/