|
0
|
| Phenomenal One · 技术社区 · 8 年前 |
|
|
1
4
Flajolet-Martin
和
HyperLogLog
算法是关于获取
近似
不同元素的计数(
count-distinct problem
)在一条溪流中
(旁白:
更一般而言,Flajolet-Martin算法或HyperLogLog不/不能构成
使用的算法
1-有趣的是,
|
|
|
2
1
这个
另一方面,像HyperLogLog这样的基数估计器很适合回答这样的问题:“有多少不同的元素,给或取几个百分比?”当你需要粗略估计你看到了多少不同的东西,将所有东西放在哈希表或二叉搜索树中这样的方法会占用太多内存(例如,如果你是一个Google web服务器,你想计算访问你的不同IP地址),它们非常适合,因为它们使用的内存量通常是您需要提前获取的。然而,他们不允许你回答“我看到了吗?”
这正是以前的事
?“因此不能作为任何
简而言之,这里的数据结构旨在解决不同的问题。传统的BST和哈希表用于精确查询,其中确定是否看到了某些内容是目标,并且希望能够(比如)迭代看到的所有元素。基数估计器很好,你只关心有多少个完全不同的元素,你不关心它们是什么,你不需要精确的答案。 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |