Árvores Balanceadas Liliane Rose Benning Salgado.

Slides:



Advertisements
Apresentações semelhantes
Estruturas de Dados Arvores
Advertisements

Árvores Equilibradas Sumário Splay B-tree Vermelho-Preto AA e BB
Organização e Recuperação da Informação
Algoritmos BUSCA E INSERÇÃO
Introdução aos Métodos de Acesso AULA 7 – Parte II Profa. Sandra de Amo GBC053 – BCC
MC 202 – Estruturas de dados
Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n)
Árvores.

Pesquisa em Memória Primária
Pesquisa em Memória Primária – Árvores AVL
HeapSort Filas de Prioridade – Heap
Pesquisa em Memória Primária – Árvores de Busca
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Pesquisa em Memória Primária – Árvores de Busca
Pesquisa em Memória Primária
SEMINÁRIO DE ALGORITMOS
André Lopes Pereira Luiz Carlos Barboza Júnior
Árvores Introdução e Aplicações Árvores de Busca Binária Fundamentos
Árvores AVL.
Ordenação Facilitar e aumentar a eficiência das operações de pesquisa sobre esses dados Pode ser crescente ou decrescente A seqüência de entrada, normalmente,
Ordenação Facilitar e aumentar a eficiência das operações de pesquisa sobre esses dados Pode ser crescente ou decrescente A seqüência de entrada, normalmente,
Árvores Balanceadas (AVL)
Métodos de Classificação por Seleção: HeapSort
Árvore Binária & AVL Equipe: Felipe Pontes Gustavo Márcio
Robson Godoi / Sandra Siebra
Indexação de Arquivos Página de rosto.
Árvores Equilibradas Sumário Splay B-tree Vermelho-Preto AA e BB
Fundamentos sobre Árvores
Árvore Binária de Busca
Algoritmos e Estruturas de Dados II
Pesquisa em Memória Primária
Árvores binárias de pesquisa com balanceamento
INF 1010 Estruturas de Dados Avançadas
Estruturas de Dados com Jogos
Algorítmos e estrutura de dados III
Algorítmos e estrutura de dados III Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Algoritmos e Estrutura de Dados III
Introdução e Busca Cega
1. Se este nó é raiz de uma árvore QuasiEquilibrada de ordem k, e
Listas, Filas e Pilhas Katia Guimarães.
Aula 3 Listas, pilhas, filas.
Rotação Simples e Dupla Katia Guimarães
Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um dado pode ser qualquer.
© Copyright 2007 Algoritmos e Estruturas de Dados - Todos os direitos reservados Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto.
Árvore Binária de Busca
Árvores B Obs: Uma árvore 2-3 é uma árvore B de ordem 1.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
SISTEMAS DE INFORMAÇÃO

Árvores Binárias Profa. Patrícia A. Jaques Luiz Gonzaga Jr
– Aula 20 Adaptado por Reinaldo Fortes para o curso de
Árvores Vermelho-Preto
Árvores AVL Balanceadas (Árvore Binária Balanceada)
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice.
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Prof. Hilton Cardoso Marins Junior

Árvores Rubro-Negras São árvores balanceadas segundo um critério ligeiramente diferente do usado em árvores AVL A todos os nós é associada uma cor que.
Programação Dinâmica.
Árvores AVL Algoritmos e Estruturas de Dados - IF672
Estruturas Avançadas de Dados UNISINOS
AVL Árvores Equilibradas Sumário AVL Splay B Vermelho-Preto AA e BB Multidimensionais quaternárias k-d [Pesquisa Lexicográfica tries multivia tries binárias.
Árvores de Busca Binária
1 de outubro de Árvores de Busca e Árvores AVL Parte 1 Katia Guimarães.
Árvores Balanceadas (AVL)
Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por Adolfo Almeida Duran (UFBA)
Árvores Binárias e Árvores AVL Katia Guimarães. Árvores Binárias e Árvores AVL Katia S. Guimarães
BANCO DE DADOS II Árvore de Dados. FATEC - GUARATINGUETÁ Professor: Eduardo Barbosa Adiel Lemos Ana Renata Bruno Michael Jéssica Fernanda Layla Monique.
INE5408 Estruturas de Dados Árvores B - Estrutura e peculiaridades -Algoritmos de inserção, pesquisa e deleção.
Transcrição da apresentação:

Árvores Balanceadas Liliane Rose Benning Salgado

POSSÍVEL PROBLEMA Exemplo: 50, 20, 39, 42, A árvore binária pode degenerar para uma estrutura próxima a uma lista ligada, e o tempo de acesso deixa de ser logarítmico. 40

Conclusão: Após um certo número de inserções e remoções, as ár- vores deixam de ser ótimas (custo O(log n) para n nós). Idéia: Manter o custo de acesso na mesma ordem de grandeza de uma árvore ótima, ou seja, O(log n). Este custo DEVE ser mantido inclusive após inserções e remoções. Solução: A árvore deve ser alterada, periodicamente. de forma que os custos destas modificações se mantenham em O(log n). UMA ÁRVORE COM ESTAS CARACTERÍSTICAS É BALANCEADA

Conceito de Balanceamento Fato: as árvores completas são aquelas que minimizam o número de comparações efetuadas no pior caso para uma busca por chave. Aplicações Dinâmicas: desaconselhável (caso degenerado visto antes) Idéia: Aplicar um algoritmo que torne a árvore novamente completa. Dificuldade: conseguir um custo menor do que (n) passos,no pior caso.

Exemplo: transformação para uma árvore completa. Custo (n) passos pelo menos. Conclusão: Aŕvores completas e a busca binária não são recomenda- das para aplicações dinâmicas. Alternativa: Exigir que a altura da árvore seja igual a O(log n) para n nós. Além disto, cada subárvore que contém m nós deve possuir altura O(log m). ÁRVORE NESTAS CONDIÇÕES É BALANCEADA.

Pontos Importantes ● Forma de uma árvore balanceada é menos rígida do que a de uma árvore completa ● Mais fácil o rebalanceamento ● AVL é um exemplo de tal árvore. Satisfaz as condições de balanceamento e após as inclusões e remoções empregam operações de rebalanceamento com custo O(log n) passos.

Árvores AVL (Adel'son-Vel'skit e Landis [1962]) Def.: Uma árvore binária T é denominada AVL quando, para todo nó v, a altura das 2 subárvores, esquerda e direita, satisfazem fb(v) = | altura(dir) - altura(esq) | ≤ 1 onde fb(v) é o fator de balanceamento do nó v. Neste caso, v é dito regulado. Uma árvore que contenha um nó que não satisfaça esta condição de altura é denominada desregulada.

INSERÇÃO EM ÁRVORE AVL AVL-Inserir (T, x) Entrada: Árvore AVL e um elto x para inserção em T. Saída: Árvore AVL (T + x) Início 1. Use o algoritmo de inserção para árvore de busca binária. 2. Se (T + x) é AVL então devolva (T + x) 3. senão T' = AVL-Balance (T + x). 4. Devolva T'. Fim

AVL-Balance Existem 4 possibilidades. Veremos a seguir 2 delas, as demais são simétricas. Usaremos um exemplo genérico para explicar o algoritmo de rebalanceamento. (Veja as árvores AVL a seguir )

Caso 1: Rotação simples (direita) O novo nó foi inserido na subárvore da esquerda, fazendo a altura de B igual a (h + 2), enquanto a altura de C é h. SOLUÇÃO: executamos uma rotação, movendo B para cima no sentido horário e modificamos e modificamos o resto da árvore se- gundo a propriedade de uma árvore de busca binária. OBS: A altura da árvore enraizada em B após a rotação é a mesma da árvore original antes da inserção. Logo, nao precisamos mais balancear.

Caso 2: Rotação dupla (direita) O novo nó é inserido na subárvore da esquerda enraizada por B, mas na configuração do novo exemplo (filho de B tem 2 árvores). Nova- mente, a altura de B é (h + 2) e de C é igual a h. SOLUÇÃO: executamos uma rotação dupla, movendo D para cima (2 vezes) no sentido horário e modificamos o resto da árvore segundo a propriedade uma árvore de busca binária. OBS: De novo, a árvore obtida pela rotação dupla tem mesma altura do que a árvore original (antes da inserção), a saber (h + 2). Logo, não precisamos mais de balanceamento.

Definição 1 (nó crítico): é a raiz da menor subárvore que perde a pro- priedade AVL como resultado da inserção. Definição 2 (nó crítico): é o ancestor mais próximo do novo nó inse- rido (folha) com fator de balanceamento igual a 1 (fb = 1). Aspectos de Implementação 1. Mantemos em cada nó o valor do fator de balanceamento (fb). 2. No ato da inserção, caminhamos para baixo na árvore armazenando o último fb igual a 1 encontrado. 3. Qd encontramos a folha para inserção já sabemos se precisamos de ro- tação. 4. Retornamos de maneira bottom-up, reajustamos o fb de cada nó neste caminho e efetuamos a rotação se necessário.

Remoção na AVL AVL-Remoção(T,x) Entrada: árvore AVL e o nó x a ser removido em T. Saída: árvore AVL (T – x). Início 1. Execute a remoção como na aŕvore binária de busca. 2. Verifique se a árvore ficou desregulada (use o fator de balanceamento como na inserção). 3. Execute uma ou mais rotações (simples ou dupla). 4. Devolva (T – x). Fim

OBS: No pior caso, precisamos de O(log n) rotações. Felizmente cada rotação requer um número constante de passos. Logo, a remoção mantém o custo em O(log n) onde n é o número de nós na árvore AVL. Existem muitos outros esquemas para Árvores de Busca Balanceadas... no que segue estudaremos mais um caso: árvores B.