In src/pairing_heap.hpp e implementata structura de date propriu-zisa cu urmatoarele operatii:
- Insert
- Build
- Merge/Compare-and-link/Meld
- Delete-min
- Delete
- Modify
- O incercare de decrease-key
In src/main.cpp am mici teste pentru structura de date implementata + teste pentru bloom filter + implementarea programului ce ia ca input formatul dat ca tema.
In src/bloom_filter.hpp am implementat un bloom filter cu operatiile de insert si contains. In loc sa folosesc double hashing am folosit un random number generator care ia ca seed valoarea hashului pentru o cheie pe care vreau sa o inserez/verific si generez numere random(index pentru biti) de atatea ori cate functii hash vreau. Asta ar trebui sa faca bloom filter-ul mai predictibil. Pentru a-l face si un pic mai rapid am implementat strategia si pe un bitset aliniat la marimea tipica a unui cache line(64 bytes).
mkdir build && cd build
cmake ..
cmake --build .
Pentru
14
1 5
1 3
1 7
1 9
1 2
3
4
3
1 0
3
1 8
1 8
1 8
2 8