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

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

Árvores Equilibradas Sumário Splay B-tree Vermelho-Preto AA e BB

Apresentações semelhantes


Apresentação em tema: "Árvores Equilibradas Sumário Splay B-tree Vermelho-Preto AA e BB"— Transcrição da apresentação:

1 Árvores Equilibradas Sumário Splay B-tree Vermelho-Preto AA e BB
Multidimensionais quaternárias k-d Pesquisa Lexicográfica tries multivia tries binárias PATRICIA Versão AED2 Falta completar as árvores vermelho-preto- ver notas sobre algoritmos top-down para VP

2 Árvores espalhadas (Splay)
o Objectivo árvores mais simples do que as árvores AVL - não forçar o equilíbrio - não manter informação de altura permitir pior caso para uma só operação O(n) garantir pior caso amortizado O(log n) - uma qualquer sequência de m operações demora, no pior caso O(m log n) - não há sequências más - reestruturar a árvore para impedir repetição de operações O(n) o Ideia cada nó acedido é puxado para a raiz por uma sequência de rotações - é provável que volte a ser acedido proximamente, com baixo custo - árvore auto-ajustável: alterações devem tender para equilibrar • Ex: registos de doentes num hospital - podem estar no fundo da árvore se o doente não estiver internado - passa para a raiz no momento do internamento; permanece aí perto algum tempo, com acesso rápido; - vai afundando se não voltar a ser acedido

3 Tentativa k5 • fazer rotações simples até o nó chegar à raiz k4 F k3 E
D k4 F k1 k3 A E B C k1 D k2 C A B

4 Rotações simples k5 • • • k4 F k1 E k1 k2 k3 k5 k2 A B C D k4 F A B k3
• o nó k3 está quase à mesma profundidade que k1 inicialmente • uma visita a k3 seria também pesada e afundaria um outro nó • esta solução não serve C D

5 Splaying rotações ascendentes desde o nó acedido x até à raiz
se p (pai de x) é a raiz: rotação simples senão, existe um a (avô de x) e • se x é filho direito (esquerdo) de p e p filho direito (esquerdo) de a : zig-zig • se x é filho direito (esquerdo) de p e p filho esquerdo (direito ) de a : zig-zag • por acesso entende-se inserção ou pesquisa • o zig-zag é uma rotação dupla AVL • o zig-zig é específico do splay

6 Rotações elementares a D p A x B C x B p A a C D zig-zag a D p C x A B
zig-zig

7 Espalhando em k1 k5 k4 F k3 E k5 k2 D k4 k1 F A zig-zag k1 E B C k2 k3
zig-zig A B C D

8 Árvore espalhada k1 k2 k4 zig-zig k3 k5 A B C D E F
fazer uma pesquisa de k1 extrai a respectiva informação e tem como efeito lateral reestruturar a árvore, tornando-a mais equilibrada não só o nó k1 veio para raiz como os que estavam no seu caminho ficaram mais perto dela

9 Exemplo • começar com lista vazia e inserir
sucessivamente nós com chave de 1 a 7 • consultar toda a árvore pela mesma ordem 7 6 3 5 1 1 2 2 2 4 2 1 1 3 1 (i) inserir 1 (ii) inserir 2 com espalhamento (iii) inserir 3 com espalhamento • • • 3 (vii) inserir 7 com espalhamento 2 7 (viii ) acesso ao nó 1 1 6 7 (ix) acesso ao nó 2 1 1 5 6 2 2 6 4 1 4 4 4 7 1 4 1 2 5 3 6 3 6 2 5 2 5 7 5 7 3 3 3

10 Análise do exemplo Inserções cada inserção é feita em tempo constante
total das n inserções é O(n) a árvore resultante é muito má (lista) mas o processo encontra-se adiantado relativamente a n * O(log n) Acessos acesso ao nó 1 é O(n) - acesso muito mau que faz reduzir a vantagem acumulada acesso ao nó 2 já é O(n/2) globalmente: calcula-se tempo amortizado Conclusão consegue-se sempre, para as primeiras m operações, manter o tempo amortizado, mesmo no pior caso, abaixo de O(m log n)

11 Implementação Implementação directa não pode ser recursiva
as rotações afectam pares de nós, a começar por baixo: é necessário primeiro descer até ao nó alvo para saber se o caminho tem número par ou ímpar de nós processamento em dois passos - descer até ao nó - subir efectuando as rotações ø é preciso guardar o caminho armazenamento do caminho pilha acrescentar a cada nó um apontador par o pai (que as rotações têm de manter) Apagamento de um nó aceder ao nó, o que o torna raiz com subárvores TL e TR; eliminar o nó; procurar o maior elemento de TL, rodá-lo para a raiz de TL; TL não tem subárvore direita; ligar TR como subárvore direita de TL. Implementação mais simples do que versão não recursiva das árvores AVL

12 Árvores Splay Top-Down
Método de splay em apenas 1 passagem to-down mantém o custo amortizado não requer espaço adicional para a pilha dos nós no caminho Operação de Splay vai manter 3 árvores árvore com raiz no nó corrente - árvore “do meio” árvore da esquerda L: nós menores que X que não estão na subárvore de X árvore da direita R: nós maiores que X que não estão na subárvore de X Início: L e R vazias e a raiz da árvore em X Splay: realizado de cima para baixo zig, zig-zag e zig-zig definidos como operações entre as 3 árvores passo final reúne a árvore

13 Operações Top-down X L R Y R L A Y A B X B X R L L A Z R Y C Y Z X A B
zig L A Y A B X B X R L L A Z R Y C zig-zig Y Z X A B B C

14 Operações Top-down X R L Z R L B Y C Y X Z A C A B X R L L Y R Y C B Z
zig-zag L B Y C Y X Z A C A B X R L L Y R Y C B Z zig-zag X A Z C simplificado A B

15 Reunião das árvores X R X L união A B L R A B


Carregar ppt "Árvores Equilibradas Sumário Splay B-tree Vermelho-Preto AA e BB"

Apresentações semelhantes


Anúncios Google