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

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

SPLAY Á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.

Apresentações semelhantes


Apresentação em tema: "SPLAY Á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."— Transcrição da apresentação:

1 SPLAY Á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

2 SPLAY Á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 SPLAY Tentativa k5 F k4 E k3 D k2 A k1 BC fazer rotações simples até o nó chegar à raiz k5 F k4 E k3 D k1 C k2 AB

4 SPLAY Rotações simples k5 F k4 E k1 k2 AB k3 CD k5 F k4 E k1 k2 AB k3 CD 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

5 SPLAY Splaying o rotações ascendentes desde o nó acedido x até à raiz o se p (pai de x) é a raiz: rotação simples o 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 o rotações ascendentes desde o nó acedido x até à raiz o se p (pai de x) é a raiz: rotação simples o 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 SPLAY Rotações elementares x B p A a CD a D p A x BC a D p C x AB x A p B a CD zig-zag zig-zig

7 SPLAY Espalhando em k1 k5 F k4 E k3 D k2 A k1 BC k5 F k4 E k1 k2 AB k3 CD zig-zag zig-zig

8 SPLAY Árvore espalhada k5 F k4 E k1 k2 AB k3 CD zig-zig 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 SPLAY Exemplo começar com lista vazia e inserir sucessivamente nós com chave de 1 a 7 consultar toda a árvore pela mesma ordem (i) inserir 1 (ii) inserir 2 com espalhamento (iii) inserir 3 com espalhamento (vii) inserir 7 com espalhamento (viii ) acesso ao nó 1 (ix) acesso ao nó 2

10 SPLAY Análise do exemplo o 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) o 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 o 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 SPLAY Implementação 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) o 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. o Implementação mais simples do que versão não recursiva das árvores AVL

12 SPLAY Á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 SPLAY Operações Top-down X A Y B LR X A Y B L R zig Y A Z B L R X A Z B LR zig-zig X C C Y

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

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


Carregar ppt "SPLAY Á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."

Apresentações semelhantes


Anúncios Google