Questão de Algoritmos e Estrutura de Dados — Complexidade de Algoritmos — FGV 2021
- Código
- fg046243
- Banca
- FGV
- Órgão
- Banestes
- Ano
- 2021
- Nível
- Superior
- AO(1)
- BO(log N)
- CO(N)
- DO(N log N)
- EO(N²)
GabaritoA — O(1)
Gabarito: letra A (O(1)). Em uma tabela hash bem projetada, a operação de busca (acesso) tem complexidade média constante O(1), independentemente do número de elementos N. Isso é possível porque a função hash mapeia diretamente a chave a um índice do vetor subjacente, permitindo acesso imediato ao elemento.
A banca testa o conhecimento sobre a eficiência típica da tabela hash, contrastando com outras estruturas. O termo “praticamente” indica que estamos considerando o caso médio, não o pior caso (que poderia ser O(N) em caso de muitas colisões).
A complexidade O(1) (tempo constante) é a característica marcante das tabelas hash quando a função hash é bem distribuída e as colisões são resolvidas de forma eficiente (ex.: encadeamento ou endereçamento aberto com boa dispersão). A cada consulta, a posição do elemento é calculada pela chave, exigindo apenas um número fixo de operações.
O(log N) é a complexidade típica de buscas em árvores balanceadas (ex.: árvore AVL, árvore rubro-negra) e em buscas binárias em vetor ordenado. Não corresponde ao comportamento de uma tabela hash.
O(N) (linear) seria o desempenho de uma busca sequencial em uma lista ou vetor não ordenado. Em tabela hash, O(N) ocorre apenas no pior caso (todas as chaves colidindo), mas a questão fala em “praticamente”, que é o caso esperado.
O(N log N) é comum em algoritmos de ordenação eficientes (mergesort, heapsort) ou em buscas combinadas com ordenação. Não se aplica à operação de acesso em hash.
O(N²) é típico de algoritmos de ordenação quadráticos (bubblesort) ou de loops aninhados. Totalmente fora do contexto de uma tabela hash.
Grave as complexidades típicas das principais estruturas de dados:
Tabela hash: O(1) (médio), O(N) (pior caso)
Árvore binária balanceada: O(log N)
Lista/vetor não ordenado: O(N) para busca
Vetor ordenado com busca binária: O(log N)
Gabarito: letra A
Link permanente: /questoes/fg046243