Flajolet-Martin算法

Flajolet-Martin算法是一种适用于大数据环境的近似计数算法,旨在解决无法全部加载数据到内存时,估算数据集中不同元素数量的问题。通过哈希函数将数据转化为均匀分布,利用二进制0后缀长度来估算基数,提供了一种时间和空间效率较高的解决方案。算法通过计算哈希值的0后缀长度的最大值,利用2的该幂次估算非重复元素数量,通过多个哈希函数和分桶策略进一步提高精度。
摘要由CSDN通过智能技术生成

为什么我的眼里常含泪水?因为我有一个算法不会。为了节约点眼泪,今天我们就来介绍著名的Flajolet-Martin算法,尽管这是一种始于上世纪80年代中期的算法,但是今天这个时代再来探讨它似乎更有意义,因为它是一种真正的“大数据”算法。


大数据时代,我们所面对的将是海量数据。所以进行任何一个看似微不足道的操作之前,都应该慎重地考察一下它的执行代价。假设你有一个很大的数据集,非常非常大,以至于不能全部存入内存。并且这个数据集中可能包含有重复的数据。如果想知道这个数据集中有多少个不同的(也就是不重复的)元素,最straightforward的方法似乎就是去‘直接数一数’,但这样做其实并不实际。


我们都知道对无序数据进行排序,时间复杂度为O(n*log(n)),然后扫描一遍这

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白马负金羁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值