Wprowadzenie
Co to jest algorytm?
Co to jest struktura danych?
Rozumowanie indukcyjne
Dowód indukcyjny
Złożoność algorytmu
Sortowanie przez wstawianie
Analiza sortowania przez wstawianie
Notacje asymptotyczne
Sortowanie, Kopiec, Rekurencja
Metoda „dziel i zwyciężaj”.
Sortowanie przez scalanie – MergeSort
Złożoność sortowania przez scalanie
Rekurencja, obliczanie złożoności rekurencyjnych, rozwiązywanie rekurencji, tw. o rekurencji uniwersalnej
Kopiec, własność kopca, przywracanie własności kopca, budowanie kopca
Analiza algorytmów kopcowych
Sortowanie kopcowe, Kolejki priorytetowe
Kolejki priorytetowe, Quicksort, Sortowanie w czasie liniowym
Kolejki priorytetowe
Operacje kopca
Implementacja kolejek priorytetowych
Sortowanie szybkie (Quicksort)
algorytm
analiza Quicksortu
Model Drzewa Decyzyjnego alg. Sortowania
Sortowanie przez zliczanie, sortowanie pozycyjne, sortowanie kubełkowe
Zbiory dynamiczne, Stos, Lista
Struktury danych, Stos, Kolejka, Lista, Drzewa BST i RB
Zbiory dynamiczne
Stos
Kolejka
Lista
Drzewo BST
operacje przeglądania, wyszukiwania, usuwania
złożoność operacji na drzewie BST
Drzewa dobrze wyważone
Listy przeskakiwania, Tablice haszujące, Statystyki pozycyjne
Dynamiczne statystyki pozycyjne, drzewa przedziałowe, grafy
Grafy, DFS, drzewo rozpinające grafu, sortowanie topologiczne
Algorytmy grafowe, poszukiwanie minimalnych ścieżek
Minimalne drzewo rozpinające
Obserwacja – struktura optymalna składa się z optymalnych pod-struktur
Algorytm Prima poszukiwania minimalnego drzewa rozpinającego
Poszukiwanie minimalnych ścieżek w dowolnym grafie skierowanym – algorytm Forda Bellmana
Wersja algorytmu Forda-Bellmana dla skierowanych grafów acyklicznych
Poszukiwanie najkrótszych ścieżek w grafie o nieujemnych wagach krawędzi – algorytm Dijkstry
Algorytmy grafowe, metoda kosztu zamortyzowanego
Sieci przepływowe, algorytmy wyszukiwania wzorca
Algorytmy tekstowe
Wyszukiwanie wzorca
automaty skończenie stanowe
wyszukiwanie wzorca w tekście za pomocą automatu
algorytm KMP (redukcja funkcji przejść do tablicy)
algorytm Boyera-Moore'a
heurystyki
niezgodności
dobrego sufiksu
Kompresja tekstów, Algorytmy równoległe
Algorytmy geometryczne
podstawowe pojęcia
określanie położenia punktów względem siebie
problem przecinania się dwóch odcinków
techniki konstrukcji algorytmów geometrycznych
problem znajdowania otoczki wypukłej zbioru punktów
algorytm Grahama znajdowania otoczki wypukłej zbioru punktów
szukanie przecinających się odcinków w zbiorze odcinków
algorytm wyszukiwania przecinających się odcinków metodą zamiatania
problem znajdowania najmniej odległej pary punktów w zbiorze
Wykład podsumowywujący