ALGORYTMY I STRUKTURY DANYCH

Slides:



Advertisements
Podobne prezentacje
ALGORYTMY I STRUKTURY DANYCH
Advertisements

STRUKTURY DANYCH.
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH WYKŁAD 03 cd. Wyszukiwanie Grażyna Mirkowska PJWSTK, 2003/2004.
Temat 2: Podstawy programowania Algorytmy – 1 z 2 _________________________________________________________________________________________________________________.
Ekonometria WYKŁAD 10 Piotr Ciżkowicz Katedra Międzynarodowych Studiów Porównawczych.
© Kazimierz Duzinkiewicz, dr hab. inż. Katedra Inżynierii Systemów Sterowania 1 Metody optymalizacji - Energetyka 2015/2016 Metody programowania liniowego.
Ćwiczenia Zarządzanie Ryzykiem Renata Karkowska, ćwiczenia „Zarządzanie ryzykiem” 1.
Rozwiązywanie zadań tekstowych za pomocą równań, nierówności i układów równań Radosław Hołówko Konsultant: Agnieszka Pożyczka.
Wypadkowa sił.. Bardzo często się zdarza, że na ciało działa kilka sił. Okazuje się, że można działanie tych sił zastąpić jedną, o odpowiedniej wartości.
Zmienne losowe Zmienne losowe oznacza się dużymi literami alfabetu łacińskiego, na przykład X, Y, Z. Natomiast wartości jakie one przyjmują odpowiednio.
Równowaga rynkowa w doskonałej konkurencji w krótkim okresie czasu Równowaga rynkowa to jest stan, kiedy przy danej cenie podaż jest równa popytowi. p.
Funkcja liniowa Przygotował: Kajetan Leszczyński Niepubliczne Gimnazjum Przy Młodzieżowym Ośrodku Wychowawczym Księży Orionistów W Warszawie Ul. Barska.
Materiały pochodzą z Platformy Edukacyjnej Portalu Wszelkie treści i zasoby edukacyjne publikowane na łamach Portalu
KOMBINATORYKA.
Matematyka przed egzaminem czyli samouczek dla gimnazjalisty Przygotowała Beata Czerniak FUNKCJE.
ORGANIZACJA LOGICZNA PLIKÓW. Wprowadzenie (1) Organizacja pliku określa sposób uporządkowania rekordów w pliku przechowywanym na dysku Różne sposoby organizacji.
POLITECHNIKA RZESZOWSKA im. Ignacego Łukasiewicza WYDZIAŁ ELEKTROTECHNIKI I INFORMATYKI ZAKŁAD METROLOGII I SYSTEMÓW POMIAROWYCH METROLOGIA Andrzej Rylski.
Optymalna wielkość produkcji przedsiębiorstwa działającego w doskonałej konkurencji (analiza krótkookresowa) Przypomnijmy założenia modelu doskonałej.
Definiowanie i planowanie zadań typu P 1.  Planowanie zadań typu P  Zadania typu P to zadania unikalne służące zwykle dokonaniu jednorazowej, konkretnej.
Katarzyna Rychlicka Wielomiany. Katarzyna Rychlicka Wielomiany Przykłady Wykresy funkcji wielomianowych Równania wielomianowe Działania na wielomianach.
Projektowanie systemów cyfrowych z wykorzystaniem języka VHDL Układy sekwencyjne.
Renata Maciaszczyk Kamila Kutarba. Teoria gier a ekonomia: problem duopolu  Dupol- stan w którym dwaj producenci kontrolują łącznie cały rynek jakiegoś.
Jak tworzymy katalog alfabetyczny? Oprac.Regina Lewańska.
Budżetowanie kapitałowe cz. III. NIEPEWNOŚĆ senesu lago NIEPEWNOŚĆ NIEMIERZALNA senesu strice RYZYKO (niepewność mierzalna)
 Austriacki fizyk teoretyk,  jeden z twórców mechaniki kwantowej,  laureat nagrody Nobla ("odkrycie nowych, płodnych aspektów teorii atomów i ich zastosowanie"),
O PARADOKSIE BRAESSA Zbigniew Świtalski Paweł Skałecki Wydział Matematyki, Informatyki i Ekonometrii Uniwersytet Zielonogórski Zakopane 2016.
Geometria obliczeniowa Wykład 13
Metody Badań Operacyjnych
Minimalizacja automatu
PODZIELNOŚĆ WIELOMIANÓW
DEFINICJA I ZASTOSOWANIE W JĘZYKU HASKELL
Szkolenie dla partnerów KSOW
Podstawowe polecenia systemu
On-the-Fly Garbage Collection
MATEMATYCZNE MODELOWANIE PROCESÓW BIOTECHNOLOGICZNYCH
Liczby pierwsze.
Przybliżenia dziesiętne liczb rzeczywistych
ALGORYTMY I STRUKTURY DANYCH
Podstawy automatyki I Wykład /2016
Geometria obliczeniowa Wykład 2
Wstęp do Informatyki - Wykład 3
Opracowała: Monika Grudzińska - Czerniecka
Geometria obliczeniowa Wykład 8
Wykorzystanie Twierdzenia Talesa w zadaniach tekstowych
Geometria obliczeniowa Wykład 8
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
Zmiany w przepisach ustawy z dnia 26 stycznia 1982 r
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
FORMUŁOWANIE HIPOTEZ STATYSTYCZNYCH
Implementacja rekurencji w języku Haskell
Znajdowanie liczb pierwszych w zbiorze
Doskonalenie rachunku pamięciowego u uczniów
Bufory.
ALGORYTMY I STRUKTURY DANYCH
Język C++ Operatory Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła.
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
Elementy Kombinatoryki
Elipsy błędów.
Grazyna Mirkowska Matematyka Dyskretna PJWSTK 2001
ALGORYTMY I STRUKTURY DANYCH
Zapis prezentacji:

ALGORYTMY I STRUKTURY DANYCH WYKŁAD 08 Drzewa binarnych poszukiwań Grażyna Mirkowska PJWSTK, 2003/2004

G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań Plan wykładu Drzewa BST Wstawianie Koszt utworzenia drzewa Usuwanie elementu z drzewa BST Sortowanie z BST Drzewo AVL Rotacje Koszty operacji 2019-02-18 G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań

G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań Sprawdzian Data 6 grudnia, sobota Godz.  10-12 sale  aula + A1 + A2 2019-02-18 G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań

Wstawianie elementu do drzewa BST Zadanie Do zbioru reprezentowanego przez drzewo D dołączyć element e, o ile nie należy on jeszcze do etykiet drzewa D. insert : BST ET BST Rozpoczynając od korzenia drzewa D przeglądamy wierzchołki tak, jak w operacji wyszukiwania: Jeśli znajdziemy wierzchołek z etykietą e, to wynikiem operacji jest dane drzewo D. Jeśli e nie jest etykietą drzewa D, to tworzymy nowy wierzchołek z etykietą e i dowiązujemy go 1. jako lewego syna wierzchołka v takiego, że e< et(v) i LP jest puste lub 2. jako prawego syna v, gdy et(v)< e, oraz PD jest puste. Metoda 2019-02-18 G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań

G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań Przykład 6 5 9 12 5 9 6 5 6 6 5 9 12 8 6 5 9 12 8 2019-02-18 G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań

G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań Algorytm wstawiania { bool := false; x:= root ; while not bool { if x.et= e then bool := true else if (e < x.et) then if ( x.lewy <>null) then x := x.lewy else y := New node(e); x.lewy := y; bool := true fi else {//analogicznie dla prawego //poddrzewa} fi fi }} Lemat Algorytm insert zatrzymuje się dla wszystkich danych początkowych. Otrzymane w wyniku drzewo ma w zbiorze swoich etykiet e. insert Koszt : A(n) = O(lg n) 2019-02-18 G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań

Koszt utworzenia drzewa BST UWAGA Koszt utworzenia i struktura drzewa zależą od kolejności wkładanych elementów. Najgorszy przypadek = wkładane elementy tworzą ciąg uporządkowany W(n) = O(n2) 9 8 7 6 Średni koszt utworzenia drzewa BST o n wierzchołkach wynosi O(n lg n), por. uzasadnienie. Lemat 2019-02-18 G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań

G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań Koszt utworzenia c.d. Niech wkładane do drzewa elementy będą permutacją liczb 1...n i niech prawdopodobieństwo tego, że i-tym elementem jest k będzie takie samo dla wszystkich k=1,2,...n. i LD PD Każdy wkładany element jest porównywany z korzeniem Hipoteza : A(i)  k * i *lg i 2019-02-18 G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań

Operacja usuwania elementu delete : BST Et  BST delete(D, e) (1) Znajdujemy wierzchołek x o etykiecie e stosując algorytm member i zapamiętujemy jego ojca y. (2) Dalsze postępowanie zależy od liczby następników x: - Usuwamy wierzchołek x, jeśli jest on liściem. - Zastępujemy wierzchołek x jego następnikiem, jeśli x ma tylko jednego syna. - Zastępujemy etykietę wierzchołka x, najmniejszą etykietą w jego prawym poddrzewie (lub największą w jego lewym poddrzewie), a wierzchołek o tej etykiecie usuwamy z drzewa, stosując zasadę (1) lub(2). Metoda 2019-02-18 G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań

G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań Usuwanie - ilustracja 1 1 Przypadek : x nie ma synów, tzn. jest liściem (rz(x)=0) y PD y x LD y LD y x PD Usuwamy wierzchołek x. 2019-02-18 G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań

G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań Usuwanie - ilustracja 2 2. Przypadek : x ma jednego syna, tzn. rz(x) = 1. y x PD LD(x) y LD(x) PD y.lewy := x.lewy; Usuwamy wierzchołek x. Postępowanie jest analogiczne, gdy x ma tylko prawego syna. 2019-02-18 G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań

G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań Usuwanie - ilustracja 3 3. Przypadek : x ma dwóch synów, tzn. rz(x) = 2. y x PD LD(x) PD’(x) y x PD LD(x) PD(x) Et(x)=Et(z) z z := min(PD(x)); Et(x) := et(z); x.prawy:= delete(PD(x), et(z)); Zastępujemy wierzchołek x jego bezpośrednim następnikiem w drzewie . 2019-02-18 G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań

Zastosowanie: wyszukiwanie i sortowanie Zadanie A Dany jest zbiór n elementów należących do pewnego uporządkowanego zbioru. Zbadać, czy dany element należy, czy nie należy do tego zbioru. Zadanie B Dany jest zbiór n elementów należących do pewnego uporządkowanego zbioru. Uporządkować elementy tego zbioru w porządku niemalejącym. 1.Zbudować drzewo BST, 2.Odczytać jego wierzchołki w porządku inorder (infixowym) sortowanie w tablicy z użyciem listy dynamicznej z użyciem drzewa BST Rozwiązanie 2019-02-18 G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań

G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań Drzewo wyważone AVL Powiemy, że drzewo binarne jest wyważone, jeżeli dla wszystkich jego wierzchołków, wysokości lewego i prawego poddrzewa różnią się co najwyżej o 1. Definicja Wyważone drzewo BST nazywamy drzewem AVL (Adelson-Velskii-Landis) 6 5 9 12 8 2 3 6 5 9 12 8 Przykład Drzewo AVL A to nie jest drzewo AVL 2019-02-18 G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań

Obliczanie wag wierzchołków Niech w będzie funkcją określoną na wierzchołkach drzewa BST taką, że w( x) = h(LD) - h(PD), gdzie LD i PD są odpowiednio lewym i prawym poddrzewem drzewa o korzeniu w x. 2 -1 +1 6 5 9 12 8 2 3 Uwaga Drzewo binarnych poszukiwań D jest drzewem AVL wttw dla każdego xD.V , w(x) {-1, 0, +1}. 2019-02-18 G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań

G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań Operacje na AVL member : AVL  Et  Bo insert : AVL  Et  AVL delete : AVL  Et  AVL Wykonuje się tak jak na drzewach BST, ale... Usunięcie jakiegoś elementu z drzewa BST może zmniejszyć wysokość jakiegoś poddrzewa! +1 +1 +2 -1 6 5 9 12 8 2 6 5 9 12 8 -1 -2 5 5 3 Dołączenie nowego elementu do drzewa BST może zwiększyć wysokość jakiegoś poddrzewa! 2019-02-18 G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań

G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań Rotacja w prawo A B Z X * Y +2 +1 B A Z X * Y Po rotacji * 2019-02-18 G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań

G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań Rotacja w lewo Pojedyncza rotacja w lewo wzgl. B B A Z X * Y -2 A B Z X * Y -1 * Po rotacji 2019-02-18 G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań

Podwójna rotacja w prawo W lewo względem A i w prawo wzgl. C A C U X Y * +2 -1 B Z +1 C B U X Z -1 A Y Po rotacji * 2019-02-18 G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań

Podwójna rotacja w lewo W prawo względem A i w lewo wzgl. C C B U X Z A Y * A C U X Y * -2 B Z -1 +1 Po rotacji 2019-02-18 G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań

Ile rotacji trzeba wykonać? Jeśli wkładamy element do drzewa AVL, to musimy wykonać co najwyżej 1 rotację. Koszt 1 rotacji jest stały! Jeśli usuwamy element z AVL, to musimy wykonać co najwyżej tyle rotacji ile jest poziomów w drzewie. pokaz 2019-02-18 G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań

G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań Koszt operacji w AVL Jaka jest minimalna liczba wierzchołków w drzewie AVL o wysokości h? LD PD h h-1 h-2 N0=1 N h= N h-1 + N h-2 +1 Można udowodnić przez indukcję, że Nh  2 h/2 Wniosek Koszty operacji min, member, insert i delete są rzędu O(lg n). Stąd h  2 lg Nh 2019-02-18 G. Mirkowska, ASD_08 Drzewa binarnych poszukiwań