34
Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

Embed Size (px)

Citation preview

Page 1: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

Árvore Binária - altura máxima

• A: Inserção de 1, 2, 3, 4, 5, 6 e 7

• Pior caso: O(n)1

2

3

4

5

6

7

Page 2: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

Árvore Binária - altura mínima

• Inserção de 4, 2, 6, 1, 3, 5 e 7, nesta ordem

• Pior caso: O(log n)

1

2

3

4

5

6

7

Page 3: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

3

Árvore Binária de altura máxima

F

E

D

C

B

A

Para árvores com n nós:altura máxima: cada nó

não folha só possui um filho - ziguezague

sua altura é n-1

Page 4: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

4

Árvore Binária - altura mínima

Seja T’ uma árvore binária de altura mínimaSe T’ não é completa, retira-se uma folha w de seu último

nível e coloca-se como filho de uma folha de nível superior (acima do penúltimo)

Repete-se a operação até não ser possível mais realizá-laA árvore resultante T’’ é completa

Se a altura de T’’ for menor que a de T’ esta não seria mínima.

T’’ não pode ser de altura maior nenhum nó foi retirado

T’ e T’’ possuem a mesma altura

Page 5: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

5

Árvore Binária - altura mínima

nível 0 – (somente a raiz) contém um nónível 1 – contém no máximo 2 nós.....no nível L - pode conter no máximo 2L nós

árvore binária cheia de altura d tem exatamente 2L nós em cada nível 0 L d

Page 6: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

6

Árvore Binária O total de nós n em uma árvore binária cheia (que

seria o máximo) de altura d é a soma do número de nós a cada nível d

n = 20 + 21 + 22 + ..... + 2d = 2j

j=0

n = 2d+1 -1 d = log (n+1) –1

pode-se mostrar também por indução!OBS.: número de folhas de uma árvore cheia com n

nós2d = 2log(n+1)-1 = 2log(n+1) = n+1

2 2

Page 7: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

7

Árvore Binária Cheia

H I

D

J K

E

B

L M

F

N O

G

C

A

Árvore Binária Cheia de altura 3 23+1-1 = 15 nós

Page 8: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

8

Árvore Binária Cheia

É a árvore binária com o máximo de nós para uma dada altura, mas a distância da raiz é pequena

Lema:Lema: Seja T uma árvore binária completa com n>0 nós. Então, T possui altura h mínimo. Além disso, h = log n

Page 9: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

9

Árvores AVL

importante manter balanceadas árvores binária de busca

Árvore Balanceada ou AVL:

a altura de uma árvore binária é o maior nível de suas folhas

A altura de uma árvore vazia é definida como -1

Page 10: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

10

árvore AVL é uma árvore binária de busca onde:para cada vértice, a altura das duas sub-

árvores não difere por mais de um:

Árvores AVL - definição

|altura (subdir (v)) - altura (subesq(v))| <= 1

Page 11: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

11

toda árvore completa é AVL e toda AVL é completa?

se a inequação acima acontece para um vértice v, v é dito regulado, senão, desregulado

Árvores AVL - definição

Page 12: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

12

Árvore AVL de altura h

Qual o número mínimo de nós? Suponha altura(subesq(v)) = h-

1 Como queremos analizar o

número mínimo de nós altura(subd(v)) = h-2 árvore AVL construída

recursivamente:Seja Th uma árvore AVL de altura h

h = 0 Th tem 0 nós: | Th | = 0

h = 1 | Th | = 1

h = 2 | Th | = 1 + | Th-1 | + | Th-2 |

subarv de alturah-2

v

subarv de altura h-1

Page 13: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

Qual o número mínimo de nós?

h | Th |0 01 12 23 44 75 126 207 33

Page 14: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

14

Qual o número mínimo de nós?

Por observação: o h-ésimo elemento da sequência de Fibonacci é:

Fh = 0 se h = 0

Fh = 1 se h = 1

Fh = Fh-1 + Fh-2 se h > 1

análogo a |Th|, mas diferindo de 1: |Th| = Fh + 1

pode-se provar que (exercício 5.3)

Fh = 1/ 5 [( (1+ 5)h/2) - ((1- 5)h/2 )]

|Th| = Fh + 1

termo < 1 se h>0

Page 15: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

15

Qual o número mínimo de nós?

|Th| > 1/ 5 [( (1+ 5)h/2) - ((1- 5)h/2 )] - 1

fazendo a = ( (1+ 5)/2) temos

|Th| > 1/ 5 ah - 1

|Th|+ 1 > 1/ 5 ah

loga (|Th| + 1) > loga (ah/ 5)

loga (|Th| + 1) > h loga 5 (mudando para base 2)

log2 (|Th| + 1)/ log2 a > h 5

h = O (log n)

Page 16: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

16

Árvores AVL balanço de um nó

altura da sub-árvore da esquerda menos a altura da sub-árvore direita

O balanço de cada nó em uma árvore binária AVL balanceada -1, 0 ou 1

Seja T uma árvore binária balanceada. Ao inserir um nó q em T a árvore resultante pode ou não ser balanceada

toda vez que um nó qualquer de T se torna desregulado

rebalancear, através de rotações cuidado: manter a ordenação entre as chaves

Page 17: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

17

Árvores AVL

H0

I0

D0

E0

B1

N0

O0

J0

K0

F1

L0

P0

Q0

M0

G-1

C0

A-1

Page 18: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

18

Árvores AVL

H0

I0

D0

E0

B1

N0

O0

J0

K0

F1

L0

P0

Q0

M0

G-1

C0

A-1

Page 19: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

Árvores AVL – rotações

A

B C

D E F G

A

B

C

D

E

F G

Page 20: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

A

B C

D E F G

A

C

B

G

F

ED

Árvores AVL – rotações

Page 21: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

Árvores AVL - exemplos

44

17 78

32 50 88

6248 0 0

1 0

2

3

1

0

Page 22: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

Árvores AVL – fator de balanceamento

44

17 78

32 50 88

6248 0 0

0 0

1

-1

-1

0

Page 23: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

44

17 78

32 50 88

6248 0 0

0 0

1

-1

-1

0

Árvores AVL – fator de balanceamento

Page 24: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

Árvores AVL – inserções

-1

0

01

10 -10

0 0 0 0 0 0

0 0 0

Page 25: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

Árvores AVL – inserções - balanceada

-1

0

01

10 -10

0 0 0 0 0 0

0 0 0

Page 26: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

Árvores AVL – inserções - desbalanceada

-1

0

01

10 -10

0 0 0 0 0 0

0 0 0

Page 27: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

Árvores AVL – inserções - desbalanceada

Apenas se o nó inserido for à esquerda de um nó com balanceamento = 1...

-1

0

01

10 -10

0 0 0 0 0 0

0 0 0

Page 28: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

Caso 1: Raiz com bal = 1, nó na SAE

A1

B0 T3

T3

altura n

T2

T2

altura nT1

T1

altura n

??

É necessária uma rotação à direita para balancear a árvore...

Page 29: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

Caso 1: Raiz com bal = 1, nó na SAE

A

B T3

T3

altura n

T2

T2

altura n

T1

T1

altura n

??

A

B

T3

T3

altura n

T2

T2

altura n

T1

T1

altura n

??

Rotação à direita

Page 30: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

Caso 2: Raiz com bal = 1, nó na SAD

Rotação dupla: rotação à esquerda na sub-árvore enraizada em B.

uma rotação à direita na sub-árvore enraizada em A.

A1

B0

T3

T3

T2

T2altura n -1

T1

T1

altura n

??

C 0

altura n -1

T4

T4

altura n

Page 31: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

Caso 2: Raiz com bal = 1, nó na SAD

A1

B0

T3

T3

T2

T2altura n -1

T1

T1

altura n

??

C 0

altura n -1

T4

T4

altura n

Page 32: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

Caso 2: Raiz com bal = 1, nó na SAD

A

B T3

T3

T2

T2

altura n -1

T1

T1

altura n

??

C

altura n -1

T4

T4

altura n

Page 33: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

Caso 2: Raiz com bal = 1, nó na SAD

A

B T3

T3

T2

T2

altura n -1

T1

T1

altura n

??

C

altura n -1

T4

T4

altura n

Page 34: Árvore Binária - altura máxima A: Inserção de 1, 2, 3, 4, 5, 6 e 7 Pior caso: O(n) 1 2 3 4 5 6 7

Caso 2: Raiz com bal = 1, nó na SAD

AB

T3

T3

T2

T2

altura n -1

T1

T1

altura n

??

C

altura n -1

T4

T4

altura n

0

0 -1