Bloom Filter

T: O(k) per operation
Feedback

Bloom Filter

Bloom filter initialized (all bits 0)
Bit Array (16 bits)
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Indices: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Added
none
Check Results
pending
SpeedNormal (500ms)
Parameters

{ size: number, elements: string[], checkElements: string[] }

Variables
phaseadd
size16
lastHashes[]
addedCount0
1class BloomFilter(size, hashCount):
2 bits = array of size bits, all 0
3
4 function add(element):
5 for each hash function h_i:
6 bits[h_i(element) % size] = 1
7
8 function check(element):
9 for each hash function h_i:
10 if bits[h_i(element) % size] == 0:
11 return DEFINITELY_NOT_IN_SET
12 return POSSIBLY_IN_SET
13
14 // Note: Cannot delete elements
15 // False positive rate ≈ (1-e^(-kn/m))^k
Output
Bloom filter initialized (all bits 0)