Questão de Algoritmos e Estrutura de Dados — Estrutura de Dados — Instituto Fênix 2024
Algoritmos e Estrutura de Dados›Estrutura de Dados
Código
qg310153
Banca
Instituto Fênix
Órgão
Prefeitura de São José do Cerrito - SC
Ano
2024
Nível
Superior
Cargo
Analista de Sistemas
Em um projeto de software, a equipe está implementando um sistema de gerenciamento de biblioteca. Um dos requisitos é permitir que os usuários pesquisem livros por título, autor ou ano de publicação. Considerando as estruturas de dados adequadas para este cenário, qual das seguintes opções seria mais eficiente para implementar a funcionalidade de pesquisa?
AUtilizar uma lista encadeada para armazenar os livros.
BUtilizar uma tabela hash, com o título do livro como chave.
CUtilizar uma árvore binária de busca para cada tipo de pesquisa (título, autor, ano).
DArmazenar os livros em um array simples e realizar buscas lineares.
Revelar gabarito e comentário▾
GabaritoC — Utilizar uma árvore binária de busca para cada tipo de pesquisa (título, autor, ano).
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Funcionalidade de pesquisa em sistema de biblioteca
Gabarito: letra C. A alternativa mais eficiente é utilizar uma árvore binária de busca para cada atributo de pesquisa (título, autor, ano). Isso oferece complexidade O(log n) para buscas em cada campo, enquanto as demais opções são menos eficientes: lista encadeada e array simples resultam em O(n), e a tabela hash com chave única não otimiza buscas por autor ou ano. A escolha de uma estrutura de dados deve considerar a necessidade de múltiplos critérios de pesquisa, e árvores balanceadas (como AVL) são clássicas para esse fim.
A banca testa o conhecimento sobre complexidade de operações e adequação de estruturas de dados a cenários com múltiplos atributos de busca. Vamos analisar cada alternativa.
Alternativa A — ❌ Incorreta
Uma lista encadeada é uma estrutura linear e ligada, mas a busca exige percorrer todos os elementos no pior caso, resultando em complexidade O(n). Para um sistema com muitos livros, essa abordagem é ineficiente para qualquer critério de pesquisa (título, autor ou ano).
Alternativa B — ❌ Incorreta
Uma tabela hash oferece busca O(1) para a chave utilizada (título), mas não atende eficientemente buscas por autor ou ano, a menos que se mantenham múltiplas tabelas hash — o que a alternativa não menciona. A opção é limitada e não resolve o requisito de pesquisa por três atributos distintos.
Alternativa C — ✅ Correta ⟵ GABARITO
Utilizar uma árvore binária de busca (ABB) para cada tipo de pesquisa permite busca O(log n) para cada atributo. Árvores balanceadas, como AVL ou rubro-negra, garantem desempenho consistente mesmo com inserções e remoções. Essa abordagem atende plenamente a necessidade de pesquisar por título, autor ou ano, sendo a mais eficiente entre as oferecidas.
PEGA ESSA DICA!
Em questões de concurso sobre estruturas de dados, foque na complexidade das operações principais (busca, inserção, remoção). Para múltiplos critérios de busca, considere índices separados (árvores ou hashes) — nunca apenas uma estrutura que privilegia um único campo.
Alternativa D — ❌ Incorreta
Um array simples com busca linear percorre todos os elementos, resultando em O(n). Em uma base de dados com milhares de livros, isso é extremamente lento. Mesmo que ordenado, a busca binária exigiria ordenação prévia por cada atributo, o que não é prático.