Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Binární stromy, AVL stromy
2
? Vyhledávání v souboru klíč data 2 4 8 1 5 7 3 Časová složitost θ (n)
blablabla blablable blablablo blablablu blablably Časová složitost θ (n) blablablík blablablíci
3
Vyhledávání v indexovaném souboru
klíč data 2 4 8 1 5 7 3 ? blablabla blablable Indexová struktura blablablo blablablu blablably Když se to dobře udělá, tak se dosáhne Časové složitosti θ (log n) blablablík blablablíci
4
Proč je θ (log n) lepší než θ (n)
Velikost souboru 10 1000 108 1010 1012 1014 Počet operací θ (n) Čas (při 108 op/s 10-7s 10-5s 1 ms 10 ms 0,1 s 1s 1 min 40 s 2h 46min 2 týdny Velikost souboru 10 1000 108 1010 1012 1014 Počet operací θ (log n) 4 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
5
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 - 1 Dokud 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 polož i = PROSTREDEK a skonči polož i = -1 Pokud budou v souboru indexy 1-n, dosáhnu složitosti θ (log n) Pokud budou indexy rozloženy nerovnoměrně, moc si nepomůžu
6
Binární strom 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
7
3 různé binární stromy pro stejnou množinu indexů
Hloubka 3 Hloubka 3 Hloubka 8
8
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 3 5 Je dokonale vyvážený Není dokonale vyvážený
9
Vložení prvku do dokonale vyváženého stromu
Nový prvek 8 Vložení nenarušilo dokonalou vyváženost Bylo provedeno v čase θ (log n)
10
Vložení prvku do dokonale vyváženého stromu
Nový prvek 33 θ (log n)
11
AVL stromy Georgij Maximovič Addelson Velskij (*1922 Moskva, žije v Izraeli)) Jevgenij Michajlovič Landis (1921 Charkov-1997 Moskva)
12
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
13
AVL stromy
14
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
15
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
16
Zařazování do AVL stromů
Zařadím prvek 3 Zařazení prvku 3 nenarušilo AVL vlastnost
17
Zařazování do AVL stromů
Zařadím prvek 1 Zařazení prvku 1 narušilo AVL vlastnost Provedu „LL rotaci“, přesměrování 2 ukazatelů
18
Zařazování do AVL stromů
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)
19
(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).
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.