C 布隆過濾器BloomFilter

2022-09-07 05:12:12 字數 1844 閱讀 2059

在實現bloomfilter,首先實現乙個位圖;

在位圖中,每個元素為「0」或「1」,表示其對應的元素不存在或者存在。

// x存在返回0,不存在返回-1

如果我們要存入的不是乙個整數,而是字串,那麼引起衝突的可能性將大大增加,為了解決這個問題,就需要使用的布隆過濾器,但布隆過濾器並不是完全準確的,他只能只能保證不在是準確的,在則有可能是誤判;

為降低存在的誤判可能,採取多個hashfunc,這樣,只要查詢多次找到都為1,那麼可以近似認為他就是存在;

反之,只要有乙個為0,那麼他必定不存在;

C 布隆過濾器

我們在玩手機的時候,軟體會給我們推送一些新訊息,軟體如何保證我們哪些訊息看過,哪些訊息沒看過呢?解決辦法 用乙個伺服器記錄我們看過的內容,為了保證能夠快速查詢,我們可以使用雜湊表儲存使用者資訊,但是浪費空間,我們使用位圖進行儲存,但是不能解決雜湊衝突,將雜湊表與位圖結合 布隆過濾器。是一種概率性資料...

布隆過濾器

布隆過濾器 bloom filter 是1970年由布隆提出的。它實際上是乙個很長的二進位制向量和一系列隨機對映函式。布隆過濾器可以用於檢索乙個元素是否在乙個集合中。它的優點是空間效率和查詢時間都遠遠超過一般的演算法,缺點是有一定的誤識別率和刪除困難。如果想要判斷乙個元素是不是在乙個集合裡,一般想到...

布隆過濾器

布隆過濾器的概念 如果想要判斷乙個元素是不是在乙個集合裡,一般想到的是將所有元素儲存起來,然後通過比較確定。鍊錶,樹等等資料結構都是這種思路.但是隨著集合中元素的增加,我們需要的儲存空間越來越大,檢索速度也越來越慢 o n o logn 不過世界上還有一種叫作雜湊表 又叫 雜湊表,hash tabl...