所谓的基数计数就是统计一组元素中不重复的元素的个数。如统计某个网站的UV,或者用户搜索网站的关键词数量;再如对一个网站分别统计了三天的UV,现在需要知道这三天的UV总量是多少,怎么融合多个统计值。
方法:(假设元素个数为m,去重后个数为n)
1、集合操作去重
时间复杂为O(m2),空间复杂度随元素个数线性增长。
2、B+树
将数据插入到B+树中达到去重目的,然后顺序访问叶节点链从而得到n值。时间复杂的为O( lgm + n ),内存亦随元素个数线性增长。
3、BitMap
4、HyperLogLog
参考资料: