A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Hash tables Fábio Nakano. Bibliografia • CLR • Ziviani.

Apresentações semelhantes


Apresentação em tema: "Hash tables Fábio Nakano. Bibliografia • CLR • Ziviani."— Transcrição da apresentação:

1 Hash tables Fábio Nakano

2 Bibliografia • CLR • Ziviani

3 Conjuntos dinâmicos Operações • Insere • Busca • Elimina Aplicações • dicionários; • tabelas de símbolos; • índices;

4 Em um vetor

5 Listas Ligadas • Classe LinkedList • Complexidade de tempo para – inserção (no início / final) – busca – remoção (no início / final)

6 Espalhar – uma bagunça organizada Sei exatamente onde está cada folha de papel na minha mesa!!! É uma questão de saber onde procurar !!!

7 Endereçamento direto • Imagine que possa se espalhar elementos por toda a memória... •... e recuperá-los em tempo constante!!!

8 Calculando chaves • No computador qualquer coisa é codificada e representada como conteúdo de memória. Este conteúdo por sua vez, pode ser visto como números. int ascii_of_A = (int)'A'; // retorna 65 int calculaChave (String txt) { int h=0; for (int i = 0; i < txt.length(); i++) { int chr = txt.charAt(i); h+= chr; } return (h%103)

9 Hash • É o jeito mais eficiente de saber onde procurar. • Calcula um índice baseado na chave que se quer buscar, h(chave). O cálculo tem que ser feito em tempo constante. • Para este índice ser “bom”, precisa ter a propriedade de espalhar os elementos uniformemente.

10 E em caso de colisão??? • Encadeamento...

11 Hash simples e uniforme com colisões resolvidas por encadeamento • fator de carga (ou taxa de ocupação) • Complexidade de uma busca sem sucesso • Complexidade (média de pior caso) de uma busca com sucesso

12 Como gerar “boas” funções Método da divisão • h(k)=k mod m • este método funciona melhor quando m é primo • problema: primos grandes sucessivos são muito distantes entre si. Método da multiplicação • h(k)=m*(A*k- floor(A*k)) • há valores de A melhores que outros. Um deles é a chamada “proporção áurea” ou número de ouro.


Carregar ppt "Hash tables Fábio Nakano. Bibliografia • CLR • Ziviani."

Apresentações semelhantes


Anúncios Google