【CMS資料結構】Count-Min-Sketch data structure (CMS)

Count-Min-Sketch(CMS)是一种概率数据结构,用于在内存和计算效率之间进行权衡,允许一定程度的误差来跟踪元素出现的次数。通过使用多个哈希函数和计数器数组,CMS可以在添加元素时快速更新计数,并在查询时返回估计的出现次数。实际应用中,当面对大量数据和频繁更新时,CMS能有效减少存储需求。
摘要由CSDN通过智能技术生成

Count-Min-Sketch data structure (CMS) (Cormode and Muthukrishnan 2005)

01 起源與定義

從名字來看,顧名思義是要 tracking count 的變化,在解問題時,若只需要著重數量變化上,這時候就適合使用 Count-Min-Sketch 以下簡稱 CMS。

傳統上,當想要紀錄 element 出現的次數,通常會建立 map 去記錄下 element 與出現次數方便查閱,但是當資料量龐大,或是隨時會有新的 element 加入就會不夠有效率。為顧及記憶體使用量和運算時間,於是有人提出 Probabilistic data structure在容忍一定誤差情況下,以準確率去換取實用性(tradeoff)的紀錄方式,CMS就屬於其中一種。透過容忍一定程度上的誤差,使響應速度加快,同時對存儲的數據的需求也能大幅降低。

02 步驟說明

  1. 訂下 d 種不同的 hash function,且產生長度為 w 的計數器們,如下圖一所示,這裡以d=5, w=10 建立 CMS 資料結構,也就是想以五種不同 hash function 和長度為 10 的計數器來追蹤數量變化。
  2. 當增加一筆資料 element e {e} e 的時候,會透過以下五種 hash function (
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值