Carregando...
Carregando...
Ajude a melhorar a plataforma
Em uma tabela hash, as colisões ocorrem quando duas chaves diferentes são mapeadas para o mesmo índice do array. Diversas técnicas podem ser utilizadas para resolver essas colisões. Entre essas técnicas, o endereçamento aberto é amplamente utilizado.
Assinale a alternativa que responde corretamente como o endereçamento aberto resolve colisões em uma tabela hash.
Explique melhor esta questão
Abre o Tutor com o enunciado e as alternativas já no campo — você revisa e envia.
Esta questão foi verificada por um de nossos administradores.
Alternativa A - Procurando outra posição livre na tabela.
As tabelas hash são estruturas de dados eficientes para armazenar e recuperar informações rapidamente, mapeando chaves para índices de um array através de uma função de hash. Contudo, é inerente a esta estrutura a possibilidade de que duas chaves diferentes sejam mapeadas para o mesmo índice, um fenômeno conhecido como colisão. A forma como essas colisões são tratadas é crucial para a performance e a correção da tabela hash. Diversas técnicas de resolução de colisões existem, sendo o endereçamento aberto uma das mais proeminentes.
O endereçamento aberto (ou open addressing) é uma família de técnicas de resolução de colisões em tabelas hash que, ao invés de usar estruturas de dados auxiliares (como listas encadeadas) para armazenar múltiplos elementos no mesmo índice, busca uma posição alternativa dentro da própria tabela hash quando uma colisão ocorre. O princípio fundamental é que todos os elementos são armazenados diretamente na tabela hash.
Quando uma colisão ocorre (ou seja, a função de hash mapeia uma nova chave para uma posição já ocupada), o algoritmo de endereçamento aberto inicia uma sequência de "provas" (em inglês, probe sequence) para encontrar o próximo slot vazio na tabela. Essa sequência de provas é determinada por um método específico e pode ser de diferentes tipos:
Em todos os casos, o objetivo é sempre encontrar uma posição livre na tabela para inserir o novo elemento. Para buscar um elemento, a mesma sequência de provas é seguida até que o elemento seja encontrado ou um slot vazio seja alcançado (indicando que o elemento não está na tabela).
Vamos analisar cada alternativa à luz do conceito de endereçamento aberto:
A) Procurando outra posição livre na tabela.
B) Aumentando o tamanho da tabela hash.
C) Usando uma lista encadeada para cada posição da tabela.
D) Utilizando duas funções de hash diferentes.
E) Removendo elementos antigos para dar lugar aos novos.
O endereçamento aberto é uma técnica eficaz para gerenciar colisões em tabelas hash, diferenciando-se por sua abordagem de busca interna por slots vazios. A sua característica principal é que, diante de uma colisão, o algoritmo não desiste do slot original, mas sim procura por uma posição alternativa dentro do próprio array da tabela, seguindo uma sequência de tentativas pré-definida, até encontrar um local desocupado para o novo elemento.
Alternativa A.