Wstawianie i wyszukiwanie kluczy w tablicach i drzewach
Wstawianie i wyszukiwanie kluczy w tablicach i drzewach binarnych • Tablice nieposortowane • Tablice posortowane • Drzewa poszukiwań binarnych • Drzewa czerwono czarne
Tablice nieposortowane wstawianie 1 10 7 3 18 12 9 20 0
Tablice nieposortowane wyszukiwanie Szukamy liczby 9: 1 10 7 3 18 12 9 20 0
Tablice nieposortowane • Wstawianie jest natychmiastowe • Znalezienie klucza może wymagać przejrzenia wszystkich elementów tablicy • Potrzebujemy czegoś lepszego
Tablice posortowane wyszukiwanie = bisekcja Szukamy liczby 10: 0 1 3 7 9 10 12 18 20
Tablice posortowane wstawianie = przesuwanie bloków 3 7 9 10 12 18 20
Tablice posortowane wstawianie = przesuwanie bloków 1 3 7 9 10 12 18 20
Tablice posortowane • Szybkie wyszukiwanie kluczy • Wstawienie może wymagać przesunięcia wszystkich elementów • Potrzebujemy czegoś lepszego
Drzewa poszukiwań binarnych wstawianie 10 12 3 1 11 7 9 20 18
Drzewa poszukiwań binarnych wyszukiwanie Szukamy liczby 9 10 12 3 1 11 7 9 20 18
Drzewa poszukiwań binarnych bywają bardzo niezrównoważone 1 3 7 9 10 11 12 18
Drzewa poszukiwań binarnych • Czas wyszukiwania i wstawiania zależy długości gałęzi drzewa • Jeśli kolejność wstawiania jest przypadkowa możemy otrzymać krótkie gałezie • Wstawiając w kolejności rosnącej otrzymujemy jedną długą gałąź • Potrzebujemy czegoś lepszego
Drzewa czerwono-czarne definicja • • Są to drzewa poszukiwań binarnych Każdy węzeł jest czerwony lub czarny Korzeń jest czarny Czerwony węzeł ma zawsze czarnego ojca • Ilość czarnych węzłów na dowolnej ścieżce korzeń-NULL jest taka sama
Drzewa czerwono-czarne przykłady 10 20
Drzewa czerwono-czarne przykłady 10 5 20 2 15 12 31
Drzewa czerwono-czarne przykłady 10 20 5 15 7 2 31 17 12 1 11 13 35 28 32 39
Drzewa czerwono-czarne rotacje 10 20 Alfa Beta Gamma
Drzewa czerwono-czarne rotacje 20 10 Alfa Beta Gamma
Drzewa czerwono-czarne przekolorowania 20 10 30
Drzewa czerwono-czarne przekolorowania 20 10 30
Drzewa czerwono-czarne
Drzewa czerwono-czarne 1 Robimy rotację Źle 3 10
Drzewa czerwono-czarne 3 1 10
Drzewa czerwono-czarne Robimy przekolorowanie 3 10 1 9 źle
Drzewa czerwono-czarne Korzeń musi być czarny Więc go przemalujmy 3 10 1 9
Drzewa czerwono-czarne 3 Robimy przekolorowanie 10 1 Źle 9 12 18
Drzewa czerwono-czarne 3 10 1 9 12 Robimy rotację Źle 18 19
Drzewa czerwono-czarne 3 10 1 Robimy przekolorowanie 9 18 12 19 Źle 20
Drzewa czerwono-czarne 3 Robimy rotację Źle 10 1 9 18 12 19 20
Drzewa czerwono-czarne 10 3 18 1 9 19 12 20
Drzewa czerwono czarne • Są to drzewa poszukiwań binarnych, które same się równoważą • Nie powstają długie gałęzie • Wyszukiwanie i wstawianie jest szybkie • To jest to!
- Slides: 31