Академический Документы
Профессиональный Документы
Культура Документы
Roteiro
Aula Anterior Funes Hash Prxima aula
Aula Anterior
Funes Hash
Motivao
Pesquisa sequencial Pesquisa binria
Ineficientes para tabelas muito grandes
Motivao
Pesquisa sequencial Pesquisa binria Ideal
Indexao direta (transformao chave-ndice)
pesq (T:tabela, C:chave) elemento
Hash
Significa:
Hash
Significa:
Fazer picadinho de carne e vegetais para cozinhar;
Hash
Significa:
Fazer picadinho de carne e vegetais para cozinhar; Fazer uma baguna;
Funo Hash
Funo de disperso ou de espalhamento. h(chave) [min .. max]
Funo Hash
Funo de disperso ou de espalhamento. h(chave) [min .. max]
c : chave
Funo Hash
Funo de disperso ou de espalhamento. h(chave) [min .. max]
c : chave
h(c)
Funo Hash
Funo de disperso ou de espalhamento. h(chave) [min .. max]
min c : chave
h(c)
max
Roteiro
Aula Anterior Funes Hash Prxima aula
Funo de Transformao
Uma funo de transformao deve mapear chaves em inteiros dentro do intervalo [min .. max]. Geralmente: min = 0 e max = M M o tamanho da tabela.
Funo de Transformao
A funo de transformao ideal aquela que:
1. Seja simples de ser computada. 2. Para cada chave de entrada, qualquer uma das sadas possveis igualmente provvel de ocorrer.
Funo de Transformao
Como as transformaes sobre as chaves so aritmticas, deve-se transformar as chaves no-numricas em nmeros. Em Java, basta realizar uma converso de cada caractere da chave no numrica para um nmero inteiro.
Coliso
Funo de disperso ou de espalhamento. h(chave) [min .. max]
c : chave
h(c)
Coliso
Funo de disperso ou de espalhamento. h(chave) [min .. max]
min c : chave
h(c)
max
Coliso
Funo de disperso ou de espalhamento. h(chave) [min .. max]
min c : chave
h(c)
max
Coliso
Funo de disperso ou de espalhamento. h(chave) [min .. max]
min c : chave
h(c)
max
Lista Linear
Uma das formas de resolver as colises simplesmente construir uma lista linear encadeada para cada endereo da tabela. Assim, todas as chaves com mesmo endereo so encadeadas em uma lista linear.
Lista Linear
Lista Linear
Lista Linear
Trabalho:
Implementar uma funo hash simples que recebe strings como entrada e usa a estrutura de lista linear para tratar colises. Use a funo geraPeso e h para os pesos e hash da funo respectivamente. Use M como 31, 79, 151. Entrada: 100, 1000, 10000 strings. Sada: Nmero de colises e tempo de execuo.