Questão de Algoritmos e Estrutura de Dados — Algoritmos — FGV 2023
- Código
- fg065338
- Banca
- FGV
- Órgão
- PGM - Niterói
- Ano
- 2023
- Nível
- Superior
- Cargo
- Analista de Tecnologia da Informação
- AÁrvore B;
- BBitmap;
- CBusca binária;
- DLista encadeada;
- ETabela Hash.
GabaritoE — Tabela Hash.
Gabarito: letra E (Tabela Hash). Para uma base com centenas de milhares de registros onde a chave de busca é o CPF, a tabela hash oferece, em média, complexidade O(1) para operações de busca, inserção e remoção. As demais estruturas apresentam complexidade superior (O(log n) ou O(n)), tornando a hash table a opção mais eficiente nesse cenário.
A questão testa o conhecimento prático de complexidade de algoritmos aplicados a grandes volumes de dados com busca por chave única. A tabela hash é projetada exatamente para esse propósito: mapear chaves a valores com acesso quase instantâneo, desde que a função hash seja bem projetada e haja tratamento adequado de colisões.
Árvore B é uma estrutura balanceada usada em bancos de dados e sistemas de arquivos, com complexidade O(log n) para busca. Embora eficiente, é inferior ao O(1) médio da hash table para acesso direto por chave. É mais adequada para buscas por intervalo ou quando a ordenação é necessária.
Bitmap é uma estrutura para representar conjuntos de bits, indicando presença/ausência. Não é apropriada para busca por chave (CPF) e não oferece recuperação direta do registro. Sua complexidade seria O(n) se usada de forma trivial.
Busca binária exige que os dados estejam ordenados e tem complexidade O(log n). Para centenas de milhares de registros, o custo de manter a ordenação (inserções/remoções) compromete a eficiência global, além de ser mais lento que O(1).
Lista encadeada tem busca sequencial O(n). Para centenas de milhares de registros, percorrer a lista até encontrar o CPF seria extremamente ineficiente.
Tabela Hash fornece operações de busca, inserção e remoção com complexidade média O(1), desde que a função hash distribua bem as chaves. É a estrutura ideal quando o acesso é puramente por chave (como CPF) e não há necessidade de ordenação.
A banca pode induzir o aluno a escolher Árvore B por ser comum em bancos de dados. Porém, a questão pede o algoritmo/método de busca que oferece a melhor complexidade para busca por chave num cenário de grande volume e sem necessidade de ordenação. Nesse caso, a hash table vence em termos de tempo de acesso médio.
Memorize as complexidades típicas das principais estruturas de dados: Tabela Hash: O(1) médio; Árvore binária balanceada: O(log n); Lista: O(n); Busca binária (vetor ordenado): O(log n). Para buscas exclusivamente por chave, a hash table é imbatível.
Gabarito: letra E (Tabela Hash).
Link permanente: /questoes/fg065338