Aula 18 – Árvores Adelson-Velskii e...
-
Upload
truongnhan -
Category
Documents
-
view
217 -
download
3
Transcript of Aula 18 – Árvores Adelson-Velskii e...
1
Aula 18 – Árvores Adelson-Velskii e Landis
Algoritmos e Estruturas de Dados I
Prof. Jesús P. [email protected]
Q1-2017
2
AVL
G.M. Adelson-Velskii y E.M. Landis“An algorithm for the organization of information”. Proceedings of the USSR Academy of Sciences, vol. 146, pp. 263–266, 1962
AVL foi a primeira estrutura (conhecida) de árvore de altura balanceada/equilibrada.
3
AVL
Georgy M. Adelson-VelskyRussia
(1922-2014/abril/26)
Evgenii Mikhailovich Landis Ucrania
(1921-1997)
5
Árvores AVL
Uma árvore AVL é definida como:Uma árvore vazia é uma árvore AVL.Sendo T uma ABB, com subárvores esquerda (L) edireita (R) , T será uma árvore AVL contanto que:
L e R são árvores AVL
A definição de uma ABB de altura equilibrada (AVL) requer que cada subárvore seja também de altura equilibrada.
6
Fator de balanceamento
O fator de balanceamento/equilibrio de um nó T em uma ABB é definido como:
Para qualquer nó T em uma árvore AVL, o fator de balanceamento assume o valor: +1, 0, -1.
7
RR
8
LL
9
LR
10
LR (outro exemplo)
11
RL
12
Rotações
13
Rotações
O processo de rebalanceamento é conduzido utilizando 4 tipos de rotações
LLRRLRRL
Suponha que o novo nó inserido é Y:As rotações são caracterizadas pelo ancestral A (com fator de balanceamento +2 ou -2) mais próximo do nó Y.
14
Rotações
LL: Y inserido na subárvore esquerda da subárvore esquerda de ALR: Y inserido na subárvore direita da subárvore esquerda de ARR: Y inserido na subárvore direita da subárvore direita de ARL: Y inserido na subárvore esquerda da subárvore direita de A
Seja B o filho de A no qual ocorreu a inserção de YLL (A = +2; B = +1)LR (A = +2; B = -1)RR (A = -2; B = -1)RL (A = -2; B = +1)
A
B
Y
15
Rotação LL
16
Rotação LL
17
Rotação LL
18
Rotação LL
19
Rotação LL
20
Rotação LL
21
Rotação LL
22
Rotação LL
23
Rotação RR
24
Rotação RR
25
Rotação RR
26
Rotação RR
27
Rotação RR
28
Rotação RR
29
Rotação RR
30
Rotação RR
31
Rotação LR (a)
32
Rotação LR (b)
33
Rotação LR (b)
34
Rotação LR (b)
35
Rotação LR (c)
36
Rotação LR (c)
37
Rotação LR (c)
38
Rotação LR
39
Rotação LR
40
Rotação LR
41
Rotação LR
42
Rotação LR
43
Rotação LR
44
Rotação LR
45
Rotação LR
46
Rotação RL (a)
47
Rotação RL (b)
48
Rotação RL (b)
49
Rotação RL (b)
50
Rotação RL (c)
52
Atividade
Suponha que serão realizadas as seguintes inserções de chaves na árvore AVL ao lado:
72136
(a) Apresente a árvore AVL resultante (1 árvore)(b) Indique o tipo de rotações consideradas em cada inserção
4
5
53
Atividade em aula
Operações
7 : RR2 : --1 : LL3 : LR6 : RL
54
Provamos que AVL é uma árvores balanceada?
55
Balanceamento de árvores AVL
Uma árvore AVL de altura h é balanceada se h = O(log(n))
Outra forma de pensar: Dada uma árvore AVL de altura h, qual seria o valor mínimo possivel para n?
56
Balanceamento de árvores AVL
Uma árvore AVL de altura h é balanceada se h = O(log(n))
Outra forma de pensar: Dada uma árvore AVL de altura h, qual seria o valor mínimo possivel para n?
h-1
h-2
57
Balanceamento de árvores AVL
Seja Th uma árvore AVL com altura h e número mínimo de nós.
T1 T2 T3 T4
Nesta definição → h=4
58
Balanceamento de árvores AVL
Basta calcular um limite inferior do número de nós de Th.Seja |Th| o número de nós de Th.
59
Analogia com a sequência de Fibonacci
60
AVL
Como Temos
61
AVL
AVL é uma árvore balanceada!
Como Temos
62
AVL
●Um teorema provado por Adelson-Velskii e Landis garante que a árvore balanceada nunca será 45% mais alta que a correspondente árvore perfeitamente balanceada, independentemente do número de nós existentes.
63
AVL
64
Implementações
Árvores balanceadas são muito utilizadas em problemas reais:
JAVA: TreeMap, TreeSet.C++: Map, Set do STL.
Custo de busca, inserção, remoção da árvore AVL: O(log n)
65
Considerações de avaliações empíricas
Há um custo adicional para manter uma árvore balanceada, mesmo assim garantindo O(log2 n), mesmo no pior caso, para todas as operações.
Em testes empíricos:Uma rotação é necessária a cada duas inserções.Uma rotação é necessária a cada cinco remoções.
A remoção em árvore balanceada é tão simples (ou tão complexa) quanto a inserção.
66
Sobre as rotações
(simplificando um pouco...)
67
Rotação: Esquerda & Direita
Varredura e-r-d: T1, X, T2, Y, T3 Varredura e-r-d: T1, X, T2, Y, T3
X
YT1
T3T2
Y
T3X
T2T1
68
Rotação: Esquerda & Direita
X
YT1
T3T2
Y
T3X
T2T1
Varredura e-r-d: T1, X, T2, Y, T3 Varredura e-r-d: T1, X, T2, Y, T3
R. a direita(y)
R. a esquerda(x)
69
Rotação: LL
p
T3f
T2T1
a
T4 p
f
T2T1
a
T4T3
R. a direita(a)
70
p
T3
Rotação: RR
a
T1
f
T4
p
a
T2T1
f
T4T3
R. a esquerda(a)T2
71
Rotação: LR
p
fT1
a
T4f
p
T2T1
a
T4T3T3T2
72
p
T2T1
Rotação: LR
p
fT1
a
T4f
p
T2T1
a
T4T3
R. a esquerda(p)
T3T2
f
a
T4
T3
R. a direita(a)
73
Rotação: RL
T1
f
a
pf
a
T2T1
p
T4T3T3T2
T4
74
Rotação: RL
T1
f
a
pf
a
T2T1
p
T4T3
R. a direita(p)
T3T2
R. a esquerda(a)
T4
T1
T2
a
f
p
T4T3
75
Como determinar o tipo de rotação?
76
LL
LR
77
RR
RL
78
Remoção em árvores AVL
79
Remoção
A remoção em árvores AVL é similar à remoção em umaABB.
Todavia, é preciso verificar o balanceamento e, senecessário, aplicar algumas das rotações.
80
Remoção
81
Remoção
82
Remoção
83
Remoção
84
Remoção
85
Remoção
86
Remoção
87
Remoção
88
Remoção
89
Remoção
90
Remoção
91
Remoção
92
Remoção
93
Remoção
94
Sobre os slides
Slides baseados em:
Szwarcfiter, J.L. & Markezon, L. Estruturas de Dados e seus Algoritmos, 3a edição, LTC, 2010.
Horowitz, E. & Sahni, S.; Fundamentos de Estruturas de Dados, Editora Campus, 1984.
Wirth, N.; Algoritmos e Estruturas de Dados, Prentice/Hall do Brasil, 1989.
Material de aula do Prof. José Augusto Baranauskas (USP/Riberão Preto)
95
Árvores de Busca Binária
Por que ABBs?São estruturas eficientes de busca (se a árvore estiver balanceada).Permitem minimizar o tempo de acesso no pior caso.
Complexidade das operações de busca, inserção, remoção:
Se balanceada → O(lg (n))
Senão → O(n)
96
Árvores balanceadas
As seguintes árvores são as ditas balanceadas – com altura O(lg(n)):
AVLRubro-negras / vermelho-preto / red-black treeB
As árvores Rubro-negrasapresentam uma alturade, no máximo, igual a2 lg(n+1).
97
Árvores balanceadas
98
Árvore Rubro-Negra
Rudolf BayerComputer scientist
99
Árvore Rubro-Negra
Somente em 1978, Leo Guibas e Robert Sedgewick, atribuiram a 'coloração' na árvore.
A cor "vermelho" foi escolhida porque era a mais bonita produzida pela impressora laser a cores disponíveis para os autores, enquanto trabalhavam na Xerox PARC.
100
Árvore Rubro-Negra
As ARN possuem um bit extra para armazenar a cor de cada nó, que pode ser VERMELHO ou PRETO.
101
Árvore Rubro-Negra