SlideShare uma empresa Scribd logo
EXERCÍCIOS HASHING

   1) Descreva os passos gerais de execução do processo de rehashing.


   2) Descreva os passos gerais de execução do processo de encadeamento.


   3) Pesquise os seguintes métodos de tratamento de colisão em tabelas hash:
         a) Coalescido
         b) Amostragem Linear
         c) Duplo
      Implemente e teste esses métodos de tratamento de colisão em tabelas hash.

   4) Esquematizar o rehasing de:
          a) Chaves: 11 – 5 – 23 – 22 – 38 – 55 – 39;
          b) Função inicial: f(chave)=chave mod P, onde P é o tamanho da tabela;


   5) Desafio: Crie um arquivo hash com registros para 20 cidades do estado de Amazonas
      cujos nomes comecem com as letras a, b, c, s. A chave de cada registro será o nome da
      cidade e não são necessários outros campos para este exercício. Comece colocando os
      nomes destas cidades em ordem alfabética.
       a) Examine a lista ordenada. Que padrões você nota que podem afetar sua escolha de
          uma função de hash?
       b) Implemente uma função hash() que utiliza alguma combinação dos códigos ASCII das
          letras do nome, mas de forma que você possa alterar o número de caracteres que são
          utilizados na combinação. Execute o hash() várias vezes, cada vez utilizando um
          número diferente de caracteres e produzindo as seguintes estatísticas para cada
          execução:
               a. O número de colisões;
               b. O número de endereços com 0,1,2,3,...5, ou mais de 5 cidades associadas.
Discuta os resultados de seu experimento em termos de efeitos da escolha de diferentes
quantidades de caracteres e como eles se relacionam com o resultado que você poderia esperar
de uma distribuição aleatória.

Mais conteúdo relacionado

Mais de CriatividadeZeroDocs (10)

Aquece Para a prova de EDA3
Aquece Para a prova de EDA3Aquece Para a prova de EDA3
Aquece Para a prova de EDA3
 
Introdução a estrutura de dados
Introdução a estrutura de dadosIntrodução a estrutura de dados
Introdução a estrutura de dados
 
Projetos de algoritmos com implementações em pascal e c (nivio ziviani, 4ed)
Projetos de algoritmos com implementações em pascal e c (nivio ziviani, 4ed)Projetos de algoritmos com implementações em pascal e c (nivio ziviani, 4ed)
Projetos de algoritmos com implementações em pascal e c (nivio ziviani, 4ed)
 
Listas em C
Listas em CListas em C
Listas em C
 
Pilhas e Filas
Pilhas e FilasPilhas e Filas
Pilhas e Filas
 
Coalesced hashing / Hash Coalescido
Coalesced hashing / Hash CoalescidoCoalesced hashing / Hash Coalescido
Coalesced hashing / Hash Coalescido
 
Implementação do Hash Coalha/Coalesced
Implementação do Hash Coalha/CoalescedImplementação do Hash Coalha/Coalesced
Implementação do Hash Coalha/Coalesced
 
Operadores Lineares
Operadores LinearesOperadores Lineares
Operadores Lineares
 
Machado de assis
Machado de assisMachado de assis
Machado de assis
 
áLbum de fotografias
áLbum de fotografiasáLbum de fotografias
áLbum de fotografias
 

Exercício sobre hashing

  • 1. EXERCÍCIOS HASHING 1) Descreva os passos gerais de execução do processo de rehashing. 2) Descreva os passos gerais de execução do processo de encadeamento. 3) Pesquise os seguintes métodos de tratamento de colisão em tabelas hash: a) Coalescido b) Amostragem Linear c) Duplo Implemente e teste esses métodos de tratamento de colisão em tabelas hash. 4) Esquematizar o rehasing de: a) Chaves: 11 – 5 – 23 – 22 – 38 – 55 – 39; b) Função inicial: f(chave)=chave mod P, onde P é o tamanho da tabela; 5) Desafio: Crie um arquivo hash com registros para 20 cidades do estado de Amazonas cujos nomes comecem com as letras a, b, c, s. A chave de cada registro será o nome da cidade e não são necessários outros campos para este exercício. Comece colocando os nomes destas cidades em ordem alfabética. a) Examine a lista ordenada. Que padrões você nota que podem afetar sua escolha de uma função de hash? b) Implemente uma função hash() que utiliza alguma combinação dos códigos ASCII das letras do nome, mas de forma que você possa alterar o número de caracteres que são utilizados na combinação. Execute o hash() várias vezes, cada vez utilizando um número diferente de caracteres e produzindo as seguintes estatísticas para cada execução: a. O número de colisões; b. O número de endereços com 0,1,2,3,...5, ou mais de 5 cidades associadas. Discuta os resultados de seu experimento em termos de efeitos da escolha de diferentes quantidades de caracteres e como eles se relacionam com o resultado que você poderia esperar de uma distribuição aleatória.