Please enable JavaScript.
Coggle requires JavaScript to display documents.
BUSCA, Heap, HASHING - Coggle Diagram
BUSCA
Para aumentar a eficiência de listas em que muitos dados raramente são utilizados, é natural criar uma lista com os itens que são mais pesquisados, uma cache
-
-
Trazer para frente
Uma vez que determinado item começa a jogar vários outros para trás, ele é realocado na frente da lista
Transposição
Faz com que um item, a cada vez que seja encontrado, seja empurrado para frente
-
-
Busca sequencial
Possui eficiência O(n) no pior caso, quando o elemento não esta na lista
Dita como inaceitavelmente ineficiente,
É a forma mais simples de busca, toda a lista é percorrida até que um elemento seja encontrado.
Busca binária
-
-
Um dos algoritmos de busca mais eficiente, possui uma eficiência de log n no pior caso
-
Heap
PROPRIEDADES
- Existe exatamente uma árvore binária essencialmente completa com n nós. Seu
altura é igual a log2 n.
-
- Um nó de um heap considerado com todos os seus descendentes também é um heap.
- Um heap pode ser implementado como um array registrando seus elementos de cima para baixo, da esquerda para a direita. É conveniente armazenar os elementos do heap em
posições 1 a n de tal matriz, deixando H [0] não utilizado ou colocando uma sentinela cujo valor é maior do que todos os elementos da pilha
É definido como um tipo de árvore binária, que segue duas condições.
-
A árvore é cheia, em todos os seus niveis, exceto no último que pode ter alguma folhas faltando a direita
-
Para inserir um item, ele é colocado em um novo nó depois da última folha, e é trocado de lugar com seu pai, sempre que for maior que ele, ou até chegar a raiz
-
-
Uma maneira alternativa é colocar a nova chave K na altura da raiz e "peneira-lá" até a sua posição ideal, comparando-a com o nó e se for maior colocando na altura do filho maior.
HASHING
Resolução de Colisões
CLOSED-HASH
-
-
Bucket Hashing
Quando ocorre uma colisão, o registro é colocado em bucket auxiliar
-
-
OPEN-HASH
Na forma mais simles de Hash aberto, cada slot contem o cabeçalho de uma lista ligada que aponta para o resto da lista
-
-
-
-
Colisões
-
As colisões são infelizmente praticamente inevitáveis, porém há maneiras de soluciona-las
Mesmo em uma tabela com muito mais slots que itens há uma grande chance de colisão, por exemplo, em uma sala de aula com 23 alunos já há alta chance de ao menos 2 fazerem aniversário no mesmo dia
Normalmente um hash utiliza um operador de módulo para garantir que o valor chave cairá dentro do intervalo especificado.