雜湊表與布隆過濾器

2022-08-24 05:57:06 字數 351 閱讀 6530

七夕,乙個人。

讀了吳軍的《數學之美》23章布隆過濾器,對雜湊表的儲存效率產生了疑問:原文「雜湊表的儲存效率只有50%,因此乙個email位址需要占用16個位元組」用於校對乙個元素是否在乙個集合中的雜湊表需要儲存元素本身?而不是只需要對應雜湊值的地方置一?

看了一篇博文《布隆過濾器(bloom filter) 詳解》,詳細分析了雜湊表和布隆過濾器。

在一般的雜湊表中若要 校對乙個元素是否在乙個集合中 需要儲存元素本身來解決衝突(collision)的問題。若不加想存元素本身 而誤判率(這裡相當於衝突率)保持,雜湊表的空間複雜度會更大。

在《布隆過濾器(bloom filter) 詳解》中有詳細資料的舉例 和 公式一步步的推導。

布隆過濾器 雜湊切分

1.首先了解下什麼是布隆過濾器,它實際上是乙個很長的二進位制向量和一系列隨機對映函式。如果想要判斷乙個元素是不是在乙個集合裡,一般想到的是將所有元素儲存起來,然後通過比較確定。鍊錶,樹等等資料結構都是這種思路.但是隨著集合中元素的增加,我們需要的儲存空間越來越大,檢索速度也越來越慢 o n o lo...

雜湊變形 布隆過濾器

細想我們這裡使用了兩個雜湊函式,那麼自然會有兩個雜湊位址。可想而知,到我們有多個字串的時候,就有可能算出的雜湊位址中有乙個或者兩個與別的字串的雜湊位址相同,如果我們想要刪除乙個資料是,必須同時將這兩個雜湊位址置為0才算是刪除了這個資料,然而當雜湊位址與別的字串的雜湊位址重複的時候,如果將相應位置為0...

布隆過濾器

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