← Questões de Algoritmos e Estrutura de Dados

Algoritmos e Estrutura de Dados · FGV · 2021

Questão comentada de Algoritmos e Estrutura de Dados

João pretende armazenar uma coleção de dados referentes a cerca de um milhão de pessoas. Cada pessoa tem como chave de acesso um número inteiro sequencial, que não se repete. Empregando uma estrutura de Tabela Hash, João conseguiria obter, praticamente, acesso com complexidade:

Gabarito: A

Tabela hash é a clássica estrutura usada quando você quer acesso muito rápido a um dado pela sua chave. A ideia é transformar a chave em um índice por meio de uma função hash, indo quase direto ao endereço do elemento. Por isso, em condições normais e com uma boa função hash, o acesso fica praticamente constante, sem precisar varrer a coleção inteira. Neste caso, a chave já é um número inteiro sequencial e sem repetição, o que facilita ainda mais a organização dos dados. Mesmo assim, o ponto central da questão não é a sequencialidade, mas o fato de a tabela hash permitir busca, inserção e remoção em tempo médio constante. Em provas, isso costuma aparecer como complexidade O(1). Claro que, no pior cenário, colisões podem atrapalhar e degradar o desempenho. Mas a banca perguntou o acesso "praticamente", isto é, no uso esperado da estrutura, e não no caso extremo. Então a resposta correta é a alternativa A, porque a tabela hash entrega acesso médio em O(1), que é justamente sua grande vantagem. Resumo de bolso: se a questão falar em tabela hash e acesso por chave, pense primeiro em tempo constante. Se não houver pegadinha explícita sobre colisões ou pior caso, a resposta quase sempre aponta para O(1).

Continue treinando

Questões relacionadas