https://github.com/bryanoliveira/hashmap-experiments
https://github.com/bryanoliveira/hashmap-experiments
Last synced: 7 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/bryanoliveira/hashmap-experiments
- Owner: bryanoliveira
- Created: 2022-07-27T20:20:48.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-08-27T22:33:35.000Z (about 3 years ago)
- Last Synced: 2025-01-03T01:54:54.923Z (9 months ago)
- Language: Jupyter Notebook
- Size: 32.4 MB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Experimentos com Hashmap
Este repositório implementa um hashmap genérico com sondagem quadrática. Também há supporte para sondagem linar utilizando a flag de compilador `LINEAR_PROBING=1`.
## Requisitos
Para compilar este programa, serão necessários o g++ (C++ 17) e o _make_.
Dependendo de seu sistema, pode ser possível instalá-los com `sudo apt install build-essential`.
### Desenvolvimento
Para o desenvolvimento é recomendado o clang-format. Você pode instalá-lo com `sudo apt install clang-format`
Também é recomendada a extensão [Clang-Format para VSCode](https://marketplace.visualstudio.com/items?itemName=xaver.clang-format).## Uso
- Instale os requisitos
- Clone este repositório
- Compilando e executando:
- `make` para compilar e executar com parâmetros padrão
- `make LINEAR_PROBING=1` para compilar e executar com sondagem linear (invés de quadrática)
- `make hashmap` para compilar
- `make run` para executar com parâmetros padrão
- `make clean` para deletar arquivos geradosNote que o algoritmo de sondagem é definido em tempo de compilação, então lembre-se de executar `make clean` entre compilações com flags diferentes.
## Reprodução dos experimentos
Os experimentos executados estão descritos no script executável `benchmark.sh`.
O código será compilado para cada tipo de sondagem e serão gerados novos conjuntos de dados na pasta `inputs/`.
Após, o script irá executar o programa sobre os conjuntos de dados gerados, salvando estatísticas em `outputs/`.
Essas estatísticas podem ser lidas com o notebook Jupyter `visualize.ipynb`, que gerará os gráficos utilizados no relatório.