19
Binární stromy, AVL stromy

Binární stromy, AVL stromy

  • Upload
    chad

  • View
    49

  • Download
    5

Embed Size (px)

DESCRIPTION

Binární stromy, AVL stromy. Vyhledávání v souboru. ?. blablabla. blablable. blablablo. blablablu. blablably. Časová složitost θ (n). blablablík. blablablíci. Vyhledávání v indexovaném souboru. ?. blablabla. blablable. Indexová struktura. blablablo. blablablu. blablably. - PowerPoint PPT Presentation

Citation preview

Page 1: Binární  stromy, AVL stromy

Binární stromy, AVL stromy

Page 2: Binární  stromy, AVL stromy

Vyhledávání v souboruklíč data

2

4

8

1

5

7

3

blablablo

blablable

blablabla

blablablu

blablably

blablablík

blablablíci

?Časová složitost θ (n)

Page 3: Binární  stromy, AVL stromy

Vyhledávání v indexovaném souboruklíč data

2

4

8

1

5

7

3

blablablo

blablable

blablabla

blablablu

blablably

blablablík

blablablíci

?Když se to dobře udělá, tak se dosáhne Časové složitosti θ (log n)

Indexová struktura

Page 4: Binární  stromy, AVL stromy

Proč je θ (log n) lepší než θ (n)Velikost souboru

10 1000 100 000

1 000 000

10 000 000

108 1010 1012 1014

Počet operacíθ (n)

10 1000 100 000

1 000 000

10 000 000

108 1010 1012 1014

Čas (při 108 op/s

10-7s 10-5s 1 ms 10 ms 0,1 s 1s 1 min40 s

2h 46min

2 týdny

Velikost souboru

10 1000

100 000

1 000 000

10 000 000

108 1010 1012 1014

Počet operacíθ (log n)

4 10 17 20 24 27 34 40 47

Čas (při 108 op/s

40ns 100ns

170ns 200 ns 240 ns 270 ns 340 ns 400 ns 470 ns

Page 5: Binární  stromy, AVL stromy

Když je soubor očíslovaný

Vstup: Posloupnost Ai, i = 0,1,...,N - 1, hodnota X

Výstup: Hodnota i, pro kterou Ai = X, nebo i = -1, pokud takové Ai neexistuje

polož ZACATEK = 0, KONEC = N - 1Dokud je ZACATEK ≤ KONEC opakuj Urči PROSTREDEK jako celou část z (ZACATEK + KONEC)/2 Pokud je APROSTREDEK < X

polož ZACATEK = PROSTREDEK + 1 Jinak

Pokud je APROSTREDEK > X

polož KONEC = PROSTREDEK - 1 Jinak polož i = PROSTREDEK a skončipolož i = -1Pokud budou v souboru indexy 1-n, dosáhnu složitosti θ (log n)

Pokud budou indexy rozloženy nerovnoměrně, moc si nepomůžu

Page 6: Binární  stromy, AVL stromy

Binární strom

22

3027

4028165

3511

a)

Uzel je buď• List (obsahuje hodnotu)• Vnitřní uzel – obsahuje hodnotu n

• Může mít levého a pravého potomka (nebo oba)• Všechny uzly v levém podstromu jsou menší než n• Všechny uzly v pravém podstromu jsou větší, než n

Vyhledávání má složitost θ (hloubka stromu)Otázka je, kolik může být hloubka stromu

Page 7: Binární  stromy, AVL stromy

3 různé binární stromy pro stejnou množinu indexů

22

3027

4028165

3511

a)

27

30

4028165

3511

22

b)

27

30

40

28

16

5

35

11

22

c)

Hloubka 3

Hloubka 3

Hloubka 8

Page 8: Binární  stromy, AVL stromy

Dokonale vyvážený binární strom

• Počet uzlů v levém a pravém podstromu libovolného uzlu se liší maximálně o 1

22

3027

4028165

3511

a)

Není dokonale vyvážený

27

30

4028165

3511

22

b)

Je dokonale vyvážený

3

5

Page 9: Binární  stromy, AVL stromy

Vložení prvku do dokonale vyváženého stromu

27

30

4028165

3511

22

b)

22

30

4028165

3511

228

Nový prvek 8

Vložení nenarušilo dokonalou vyváženostBylo provedeno v čase θ (log n)

Page 10: Binární  stromy, AVL stromy

Vložení prvku do dokonale vyváženého stromu

27

30

4028165

3511

22

b)

Nový prvek 33

θ (log n)

22

30

4028165

3511

22

33

Page 11: Binární  stromy, AVL stromy

AVL stromy

• Georgij Maximovič Addelson Velskij (*1922 Moskva, žije v Izraeli))

• Jevgenij Michajlovič Landis (1921 Charkov-1997 Moskva)

Page 12: Binární  stromy, AVL stromy

AVL stromy

• Pro každý uzel platí, že hloubka levého a pravého podstromu se liší maximálně o 1

• Slabší podmínka, než podmínka dokonalé vyváženosti

Page 13: Binární  stromy, AVL stromy

AVL stromy

27

30

4028165

3511

22

b)

22

3027

4028165

3511

a)

Page 14: Binární  stromy, AVL stromy

AVL stromy

• N(h) – minimální počet prvků ve stromu hloubky h

• N(1)=1, N(2)=2, N(3)=4• N(h)=1+N(h-1)+N(h-2)• Hodnoty N(h) jsou čísla Fibonacciho

posloupnosti zvětšená o 1• AVL stromům se říká také Fibonacciho stromy

Page 15: Binární  stromy, AVL stromy

Matematické tvrzení

– Prvky Fibonacciho posloupnosti rostou exponencielně se základem d, který je menší než 2.

– Prvky posloupnosti h(n) pro dokonale vyvážené stromy rostou exponencielně se základem 2.

– Současný nejlepší odhad základu d je asi 1,74.– d je tedy 1,45 x menší, než 2.– Vyhledávání v AVL stromech je tedy maximálně o

45% pomalejší, než vyhledávání v dokonale vyvážených stromech

Page 16: Binární  stromy, AVL stromy

Zařazování do AVL stromů

30

4028165

3511

27

22

30

4028165

3511

27

22

3

Zařadím prvek 3

Zařazení prvku 3 nenarušilo AVL vlastnost

Page 17: Binární  stromy, AVL stromy

Zařazování do AVL stromů

30

4028165

3511

27

22

Zařadím prvek 1

Zařazení prvku 1 narušilo AVL vlastnost

30

4028165

3511

27

22

3

1

30

4028165

3511

27

22

3

1

30

4028163

3511

27

22

1 5

Provedu „LL rotaci“, přesměrování 2 ukazatelů

Page 18: Binární  stromy, AVL stromy

Zařazování do AVL stromů

30

4028165

3511

27

22

Zařadím prvek 29

Zařazení prvku 29 narušilo AVL vlastnost

Provedu „LR rotaci“, přesměrování 4 ukazatelů (nejsložitější situace)Ještě existuje RR rotace (2 změny) a RL rotace (4 změny)

30

4028163

3511

27

22

1 5

29

30

4028163

3511

27

22

1 5

29 29

3528163

3011

27

22

1 5 40

Page 19: Binární  stromy, AVL stromy

(a,b) stromy

• Zobecnění pojmu binární strom• Každý uzel může mít minimálně a a maximálně b

potomků• Dají se pro ně definovat pojmy dokonalé vyváženosti a

AVL vyváženosti s podobnými vlastnostmi– Jen typy a složitosti AVL rotací jsou jiné a konstanta d má jinou

hodnotu než 45 %• V obecné informatice se často používají (2,3) stromy, když

se udělají šikovně, dá se výrazně omezit výskyt rotací• V počítačové grafice nejčastěji (2,4) stromy a (4,4) stromy

(4-tree).