摘要: 上周五的时候去参加了一个面试,被问到了这个问题。问题描述如下:假如存在一个很大的文件,文件中的每一行是一个字符串。请问在内存有限的情况下(内存无法加载这个文件中的所有内容),如何计算出出现频率最高的前100名字符串?由于面试之前在学习hbase时了解了一下布隆过滤器(对bitmap的扩展使用),所以当时立刻想到用bitmap去解决这个问题,但是考虑到bitmap无法对出现的单词计数的。所以我当时的回答是:首先实例化一个数组,然后读取文件对每一行的字符串进行hash得到一个数值,然后将数组下标为这个数值的值+1,最后再将这个数组排序并取出前100名。后面想想自己的回答简直是驴头不对马嘴,我的答案 阅读全文
posted @ 2013-08-05 00:57 halentest 阅读(2715) 评论(0) 推荐(0) 编辑