百度给我同学的一个电面试题,
如何统计 搜索词汇的前十名。
最近看了HASHMAP的源码实现相关文章,
受到启发。
觉得可以用HASHSET实现
将所有关键字记录进HASHSET
关键字类
大概如下
每次counts+1;
并且设定一个阀值VALVE1当超过多少时就将此对象添加进一个
LIST里(此LIST用于记录COUNTS较大的关键字),
对LIST 做排序,排序可以考虑用多线程归并排序
对LIST 也设定一个阀值,当LIST中的元素个数大于阀值时,
提高VALVE1的值,并重新调整删除LIST中阀值小于新阀值的元素。
以上纯属 胡言乱语。。哈哈哈哈
如何统计 搜索词汇的前十名。
最近看了HASHMAP的源码实现相关文章,
受到启发。
觉得可以用HASHSET实现
将所有关键字记录进HASHSET
关键字类
大概如下
class MyKeyWord
{
String keyWord;
int counts;
}
每次counts+1;
并且设定一个阀值VALVE1当超过多少时就将此对象添加进一个
LIST里(此LIST用于记录COUNTS较大的关键字),
对LIST 做排序,排序可以考虑用多线程归并排序
对LIST 也设定一个阀值,当LIST中的元素个数大于阀值时,
提高VALVE1的值,并重新调整删除LIST中阀值小于新阀值的元素。
以上纯属 胡言乱语。。哈哈哈哈