Analiza algorytmów 2010/11
Egzamin ustny, z przygotowaniem odpowiedzi na kartce - pytania egzaminacyjne
Wymagany jest stopień szczegółowości opisu algorytmu pozwalajacy bez wątpliwości zanalizować jego złożoność. Analiza poszczególnych algorytmów i dowody twierdzeń obowiązują w zakresie jak na wykładzie.
- Twierdzenie o rekurencji uniwersalnej, dowód dla wersji n=b^k
- Analiza problemu sekretarki: wersja postawowa (zmienne losowe wskaźnikowe) oraz wersja on-line
- Generowanie permutacji losowej metodą Knutha
- Analiza problemu sekretarki za pomocą funkcji tworzących prawdopodobieństwa (wartośc średnia oraz wariancja)
- Dolne oszacowanie na złożoność sortowania w modelu drzew decyzyjnych, pesymistyczne i średnie
- Quicksort: rozkład prawdopodobieństwa w podzadaniach i analiza złożoności średniej (równanie rekurencyjne na wartość oczekiwaną liczby porównań)
- Sortowanie turniejowe, liczba porownań a dolne oszacowanie na złożoność sortowania
- Znajdowanie k-tego elementu (lub k największych): algorytm Hadiana-Sobela, metoda Hoare'a i jej złożoność średnia, metoda mediany median
- Wyszukiwanie interpolacyjne w tablicy posortowanej, złożoność średnia wyszukiwania kwadratowego
- Model permutacyjny dla drzew BST: średnia złożoność operacji, oczekiwana wysokość drzewa
- Drzewa splay: analiza złożoności
- Drzewa treaps: algorytmy, analiza operacji usuwania - oczekiwana głębokość węzła i liczba rotacji
- Problem Find-Union, rozwiązanie drzewowe z kompresją ścieżek
- Haszowanie: analiza haszowania otwartego (wtórna funkcja haszująca)
- Haszowanie: uniwersalna rodzina funkcji haszujących - wersja stosowana do haszowania doskonałego
- Haszowanie doskonałe
- Kopiec Fibonacciego: algorytmy, analiza złożoności amortyzowanej
- Kopiec Fibonacciego: twierdzenie o stopniu wierzchołka.