该篇文章中问题的定义和上一篇文章《数据流基本问题--独立元素计数(一)》中一样。不过该篇文章里能给出-近似的算法。
一、算法的基本思想
该篇文章中的算法是上一篇文章中算法的改进。这里不再记录流中元素zeros(h(j))的最大值,而是将满足所有的元素放入到B中。如果流中有d个独立元素,那么平均会有
个元素满足
。所以
应该是d的一个比较好的估计(|B|指的是B中元素总数目)。
二、算法的具体过程
算法的伪代码如下图所示。将一个元素j添加到B中时,是以g(j)和zeros(h(j))组成一对加进去的。没有直接存元素而是存元素哈希后的结果是为了节省空间的考虑。而且也存放zeros(h(j))是为了当B需要删除元素时需要用到它。

本文延续了上一篇关于数据流中独立元素计数的问题,提出了一种改进算法,通过记录满足条件的元素并利用哈希技术进行优化,以估算流中的独立元素数量。算法在空间效率和近似准确性之间取得平衡,并通过数学分析证明了其对d的-近似性质。当不存在哈希冲突时,结果可视为精确解。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



