Criou página com '= Comentários = <br> - A função de espalhamento ou função de dispersão é a responsável por gerar um índice a partir de determinada chave. Caso a função seja mal es...'
 
Sem resumo de edição
 
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada)
Linha 2: Linha 2:
<br>
<br>


- A função de espalhamento ou função de dispersão é a responsável por gerar um índice a partir de determinada chave. Caso a função seja mal escolhida, toda a tabela terá um mau desempenho.
* Hashing:
- A função de dispersão pode calcular o mesmo índice para duas chaves diferentes, uma situação chamada colisão. Por conta disso, a função deve ser projetada para evitar ao máximo a ocorrência de colisões.
** É uma técnica simples e amplamente utilizada na programação de sistemas. Quando a tabela hash tem tamanho adequado ao número de chaves que irá armazenar e a função hash utilizada apresenta boa qualidade, a estratégia de manipulação por hashing é bastante eficiente
- Colisões: muitas tabelas de dispersão são aliadas com alguma outra estrutura de dados, tal como uma lista encadeada ou até mesmo com árvores balanceadas
- Funções de espalhamento perfeitas ou quase perfeitas são encontradas apenas onde a colisão é intolerável (por exemplo, nas funções de dispersão da criptografia), ou quando conhecemos previamente o conteúdo da tabela armazenada
- A tabela de dispersão é uma estrutura de dados do tipo dicionário, que não permite armazenar elementos repetidos, recuperar elementos sequencialmente (ordenação), nem recuperar o elemento antecessor e sucessor.
- Aplicações incluem banco de dados, implementações das tabelas de símbolos dos compiladores, na programação de jogos para acessar rapidamente a posição para qual o personagem irá se mover e na implementação de um dicionário.




- A grande vantagem na utilização da tabela hash está no desempenho -- enquanto a busca linear tem complexidade temporal e a busca binária tem complexidade  O(\log N), o tempo de busca na tabela hash é praticamente independente do número de chaves armazenadas na tabela, ou seja, tem complexidade temporal $ O(1)$.  
* A função de espalhamento ou função de dispersão é a responsável por gerar um índice a partir de determinada chave
**Caso a função seja mal escolhida, toda a tabela terá um mau desempenho.
* A função de dispersão pode calcular o mesmo índice para duas chaves diferentes, uma situação chamada colisão. Por conta disso, a função deve ser projetada para evitar ao máximo a ocorrência de colisões.
* Colisões: muitas tabelas de dispersão são aliadas com alguma outra estrutura de dados, tal como uma lista encadeada ou até mesmo com árvores balanceadas


- Uma boa função hash deve apresentar duas propriedades básicas: seu cálculo deve ser rápido e deve gerar poucas colisões
 
 
* Funções de espalhamento perfeitas ou quase perfeitas são encontradas apenas onde a colisão é intolerável
** Exemplo: nas funções de dispersão da criptografia), ou quando conhecemos previamente o conteúdo da tabela armazenada
* A tabela de dispersão é uma estrutura de dados do tipo dicionário, que não permite armazenar elementos repetidos, recuperar elementos sequencialmente (ordenação), nem recuperar o elemento antecessor e sucessor.
* Aplicações:
** banco de dados
** implementações das tabelas de símbolos dos compiladores
** na programação de jogos para acessar rapidamente a posição para qual o personagem irá se mover e na implementação de um dicionário.
 
 
* Vantagem:
** Desempenho -- enquanto a busca linear tem complexidade temporal e a busca binária tem complexidade  O(\log N), o tempo de busca na tabela hash é praticamente independente do número de chaves armazenadas na tabela, ou seja, tem complexidade temporal O(1).
 
 
* Boa função hash deve apresentar duas propriedades básicas:  
** seu cálculo deve ser rápido  
** deve gerar poucas colisões

Edição atual tal como às 13h07min de 15 de janeiro de 2015

Comentários


  • Hashing:
    • É uma técnica simples e amplamente utilizada na programação de sistemas. Quando a tabela hash tem tamanho adequado ao número de chaves que irá armazenar e a função hash utilizada apresenta boa qualidade, a estratégia de manipulação por hashing é bastante eficiente


  • A função de espalhamento ou função de dispersão é a responsável por gerar um índice a partir de determinada chave
    • Caso a função seja mal escolhida, toda a tabela terá um mau desempenho.
  • A função de dispersão pode calcular o mesmo índice para duas chaves diferentes, uma situação chamada colisão. Por conta disso, a função deve ser projetada para evitar ao máximo a ocorrência de colisões.
  • Colisões: muitas tabelas de dispersão são aliadas com alguma outra estrutura de dados, tal como uma lista encadeada ou até mesmo com árvores balanceadas


  • Funções de espalhamento perfeitas ou quase perfeitas são encontradas apenas onde a colisão é intolerável
    • Exemplo: nas funções de dispersão da criptografia), ou quando conhecemos previamente o conteúdo da tabela armazenada
  • A tabela de dispersão é uma estrutura de dados do tipo dicionário, que não permite armazenar elementos repetidos, recuperar elementos sequencialmente (ordenação), nem recuperar o elemento antecessor e sucessor.
  • Aplicações:
    • banco de dados
    • implementações das tabelas de símbolos dos compiladores
    • na programação de jogos para acessar rapidamente a posição para qual o personagem irá se mover e na implementação de um dicionário.


  • Vantagem:
    • Desempenho -- enquanto a busca linear tem complexidade temporal e a busca binária tem complexidade O(\log N), o tempo de busca na tabela hash é praticamente independente do número de chaves armazenadas na tabela, ou seja, tem complexidade temporal O(1).


  • Boa função hash deve apresentar duas propriedades básicas:
    • seu cálculo deve ser rápido
    • deve gerar poucas colisões