Informacje dla studentów << Algorytmy i struktury danych <<

Tematyka zajęć laboratoryjnych

temat I
Algorytmy sortowania
  1. Naiwne algorytmy sortowania:
    • Sortowanie przez proste wybieranie (Selection Sort)
    • Sortowanie przez proste wstawianie (Insertion Sort)
    • Sortowanie przez prostą zamianę (Bubble Sort)
  2. Złożoność pamięciowa algorytmów sortowania
  3. Podstawowe operacje w sortowaniu
  4. Złożoność obliczeniowa algorytmów sortowania
  5. Analiza złożoności obliczeniowej dla różnych rozkładów danych wejściowych
  6. Algorytmy sortowania oparte na podejściu „dziel i zwyciężaj”
    • Sortowanie szybkie (Quick sort)
    • Sortowanie stogowe (Heap Sort)
    • Sortowanie przez scalanie (Merge Sort)
  7. Co oznacza stabilność sortowania
  8. Właściwość sortowania w miejscu
  9. Inne przykłady algorytmów sortowania
    • Sortowanie za pomocą malejących przyrostów (Shell Sort)
    • Sortowanie przez zliczanie (Counting sort)
temat II
Złożone struktury danych
  1. Struktura listy jedno- i dwukierunkowej
  2. Struktura drzewa poszukiwań binarnych (BST)
  3. Drzewo zrównoważone (AVL), drzewo dokładnie wyważone (DDW), drzewo zdegenerowane (winorośl)
  4. Własności różnych drzew BST
  5. Tworzenie i usuwanie listy/drzewa
  6. Metoda przeszukiwania binarnego w tworzeniu drzewa AVL
  7. Wyszukiwanie elementu na liście/w drzewie
  8. Usuwanie pojedynczych elementów listy/drzewa
  9. Przeglądanie drzewa w porządku wzdłużnym (preorder), poprzecznym (inorder) i wstecznym (postorder)
  10. Rotacje w drzewie binarnym
  11. Równoważenie drzewa metodą DSW (Day-Stout-Warren)
  12. Równoważenie drzewa metodą z usuwaniem korzeni niezbalansowanych poddrzew
temat III
Algorytmy grafowe
  1. Wybrane pojęcia z teorii grafów
  2. Reprezentacje maszynowe grafu: lista krawędzi, macierz sąsiedztwa, macierz incydencji, lista sąsiedztwa, lista następników, lista poprzedników, macierz grafu
  3. Własności różnych reprezentacji maszynowych grafu
  4. Złożoność pamięciowa i złożoność pozyskiwania informacji o grafie dla różnych reprezentacji maszynowych
  5. Algorytmy przeszukiwania grafu w głąb (Depth First Search = DFS) i wszerz (Breadth First Search = BFS)
  6. Algorytm sortowania topologicznego metodą Kahna
  7. Algorytm sortowania topologicznego z wykorzystaniem przechodzenia w głąb
temat IV
Algorytmy z powracaniem
  1. Idea działania algorytmów z powracaniem
  2. Problem znajdowania ścieżki i cyklu Hamiltona w grafie
  3. Problem znajdowania ścieżki i cyklu Eulera w grafie
  4. Wersja przeszukiwania i wersja decyzyjna problemu ścieżki Hamiltona i ścieżki Eulera
  5. Algorytm z powracaniem dla problemu poszukiwania cyklu Hamiltona
  6. Algorytm z powracaniem dla problemu poszukiwania cyklu Eulera
  7. Przynależność obydwu problemów do klas złożoności
  8. Złożoność obliczeniowa algorytmów poszukiwania cyklu Hamiltona i cyklu Eulera
temat V
Programowanie dynamiczne
  1. Problem plecakowy i jego różne wersje
  2. Sformułowanie 0-1 problemu plecakowego
  3. Algorytm wyczerpujący dla 0-1 problemu plecakowego
  4. Algorytm zachłanny dla 0-1 problemu plecakowego
  5. Metodyka programowania dynamicznego
  6. Algorytm programowania dynamicznego dla 0-1 problemu plecakowego
  7. Klasa złożoności problemu plecakowego
  8. Złożoność obliczeniowa algorytmów wyczerpującego, zachłannego i programowania dynamicznego dla 0-1 problemu plecakowego