Buscar

Arvore Rubro Negra

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 40 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 40 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 40 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Árvores binárias de 
busca balanceadas: 
!
ênfase em 
rubro-negras
Giovani Chiachia
1
vetores ordenados
2
operações
busca 
seleção 
min/max 
pred/sucessor 
rank 
impressão em ordem
tempo
O(log n) 
O(1) 
O(1) 
O(1) 
O(log n) 
O(n)
inserções/remoções O(n)
árvores binárias de busca (ABBs)
3
qual o tempo!
no pior caso!
da operação de busca!
(ou inserção) em!
uma ABB com n nós?
⇥(1)
⇥(log n)
⇥(altura)
⇥(n)
altura varia entre ~log n e ~n
cenário
4
operações vetor ordenado
arv. binárias 
de busca 
(ABBs)
busca O(log n) O(altura)
seleção O(1) O(altura)
min/max O(1) O(altura)
pred/sucessor O(1) O(altura)
rank O(log n) O(altura)
imp. em ordem O(n) O(n)
ins./remoções O(n) O(altura)
ABBs 
balanceadas
O(log n)
O(log n)
O(log n)
O(log n)
O(log n)
O(n)
O(log n)
aplicações normalmente são dinâmicas
dá para!fazer melhor?
ABBs balanceadas
5
quando usar? 
!
conjunto rico de operações 
dados dinâmicos 
garantia de desempenho
quando não usar? 
!
dados mudam pouco 
não requer todas essas operações
árvores balanceadas
6
ideia: garantir que a altura da árvore seja 
sempre O(log n)
árvores AVL 
árvores rubro-negras 
árvores splay
Adelson-Velskii e Landis, 1962 
Guibas e Sedgewick, 1978 
Sleator e Tarjan, 1985
binárias 
árvores 2-3 
árvores B
Hopcroft, 1970 
Bayer e McCreight, 1972
outras
árvores rubro-negras
7
invariantes adicionais
1 - todo nó será vermelho ou negro (1 bit)
3 - não é permitido dois nós vermelhos consecutivos
4 - todos os caminhos da raiz até uma subárvore nula 
 deve ter o mesmo número de nós negros
2 - a raiz da árvore será sempre negra
árvores rubro-negras
8
exemplos
uma árvore desbalanceada com três nós não pode 
ser rubro-negra
árvores rubro-negras
9
exemplos
uma árvore desbalanceada com três nós não pode 
ser rubro-negra
árvores rubro-negras
10
exemplos
árvores rubro-negras
11
exemplos
árvores rubro-negras
12
exemplos
árvores rubro-negras
13
exemplos
árvores rubro-negras
14
exemplos
árvores rubro-negras
15
exemplos
árvores rubro-negras
16
altura máxima
proposic¸a˜o: toda a´rvore rubro-negra
com n no´s tem altura  2 log(n+ 1)
árvores rubro-negras
17
essa a´rvore tem n � 2k � 1 no´s
e k  log(n+ 1)
observac¸a˜o: se todos os caminhos raiz-a´rvore-vazia
em uma a´rvore bina´ria tiverem � k no´s,
enta˜o essa a´rvore tem em seu topo uma
a´rvore perfeitamente balanceada com altura k � 1
árvores rubro-negras
18
altura máxima
k  log(n+ 1), onde k e´ o # mı´nimo
de no´s em um caminho raiz-a´rvore-vazia
em uma a´rvore rubro-negra com n no´s,
existe um caminho raiz-a´rvore-vazia
com  log(n+ 1) no´s negros
árvores rubro-negras
19
altura máxima
k  log(n+ 1), onde k e´ o # mı´nimo
de no´s em um caminho raiz-a´rvore-vazia
em uma a´rvore rubro-negra com n no´s,
existe um caminho raiz-a´rvore-vazia
com  log(n+ 1) no´s negros
árvores rubro-negras
20
altura máxima
pela quarta invariante, todos os caminhos
raiz-a´rvore-vazia tem  log(n+ 1) no´s negros
existe um caminho raiz-a´rvore-vazia
com  log(n+ 1) no´s negros
árvores rubro-negras
21
em uma a´rvore rubro-negra com n no´s,
se todos os caminhos raiz-a´rvore-vazia
teˆm  log(n+ 1) no´s negros,
qual o tamanho ma´ximo do maior caminho dessa a´rvore?
log(n+ 1)p
n
2 log(n+ 1)
n
terceira 
invariante
árvores rubro-negras
22
como manter as invariantes?
rotações para esquerda e direita
ideia
rebalancear localmente a subárvore enraizada 
em um dado nó em tempo O(1) 
árvores balanceadas
23
rotação para esquerda de x e y
árvores balanceadas
24
rotação para direita de x e y
árvores rubro-negras
25
como manter as invariantes?
rotacionando / rebalanceando
trocando cores
propagando o rebalanceamento 
para cima se necessário
árvores rubro-negras
26
inserção
árvore vazia
ou
árvores rubro-negras
27
inserção
nó pai é negro
árvores rubro-negras
28
inserção
noção de tio
o caso simétrico 
é sempre aplicável
árvores rubro-negras
29
inserção
tem pai rubro e tio rubro
não importa de que lado esteja
inserção
árvores rubro-negras
30
é filho esquerdo, tem pai rubro e tio negro
árvores rubro-negras
31
é filho direito, tem pai rubro e tio negro
inserção
árvores rubro-negras
32
implementação
http://www.opensource.apple.com/source/sudo/sudo-46/src/redblack.c
33
34
35
36
árvores rubro-negras
37
demo
árvores rubro-negras
38
inserções/remoções on-the-fly
http://www.cs.usfca.edu/~galles/visualization/RedBlack.html
pior caso depois 
de N inserções
caso médio depois 
de N inserções
estrutura 
de dados busca inserção remoção busca inserção remoção
vetor 
ordenado log n n n log n n/2 n/2
árvores 
binárias 
de busca
n n n 1,39log n 1,39log n -
cenário
39
árvores 
rubro- 
negras
2log n 2log n 2log n 1,0log 1,0log 1,0log 
tabelas de 
espalha- 
mento
log log log 3,5 3,5 3,5 
* coeficiente desconhecido, mas muito próximo de 1,0 conforme Sedgewick, 2011 
** sob espalhamento uniforme
dá para!
fazer melhor?
fiquem ligados!
referências
40
- R. Sedgewick, K. Waine, Algorithms in C. Addison-Wesley ,1990 
!
- T. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein. Algoritmos - Teoria e Prática. 
Campus, 2002. 
!
- D. E. Knuth, The Art of Computer Programming, Vol III: Sorting and Searching. 
Addison-Wesley (1978). 
!
- Tim Houghgarden, Algorithms: Design and Analysis, Part 1. Coursera MOOC at 
https://class.coursera.org/algo-004/lecture 
!
- R. Sedgewick, K. Waine, Algorithms, Part I, Coursera MOOC at https://
class.coursera.org/algs4partI-004

Outros materiais