Algorytmy i struktury danych: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Diks (dyskusja | edycje)
Diks (dyskusja | edycje)
Linia 22: Linia 22:
* Sortowanie:
* Sortowanie:
** sortowanie przez porównania (InsertionSort, QuickSort, MergeSort),
** sortowanie przez porównania (InsertionSort, QuickSort, MergeSort),
** HeapSort i kopce binarne,
** HeapSort, kopce binarne i kolejki priorytetowe,  
** złożoność problemu sortowania.
** złożoność problemu sortowania,
** sortowanie pozycyjne.
* Selekcja:
* Selekcja:
** minimum i maximum,
** algorytm Hoare'a,
** algorytm Hoare'a,
** algorytm ''magicznych piątek''.
** algorytm ''magicznych piątek''.
Linia 35: Linia 35:
** B-drzewa,
** B-drzewa,
** haszowanie.
** haszowanie.
* Złożone struktury danych:
** kolejki priorytetowe,
** struktury danych dla zbiorów rozłącznych.
* Algorytmy grafowe:
* Algorytmy grafowe:
** DFS i jego zastosowania,
** DFS i jego zastosowania,
Linia 44: Linia 41:
* Algorytmy tekstowe:
* Algorytmy tekstowe:
** wyszukiwanie wzorca w tekście - algorytmy Knutha-Morisa-Pratta i Boyera-Moora,
** wyszukiwanie wzorca w tekście - algorytmy Knutha-Morisa-Pratta i Boyera-Moora,
** struktury danych dla tekstów - drzewa sufiksowe.
** kompresja tekstów.
* NP-zupełność i algorytmy aproksymacyjne
* NP-zupełność
** Klasa NP i problemy NP-zupełne
** Klasa NP
** dowodzenie NP-zupełności
** Problemy NP-trudne i NP-zupełne
** algorytmy aproksymacyjne, schematy aproksymacyjne, nieaproksymowalność


=== Literatura ===
=== Literatura ===
# ''Wprowadzenie do algorytmów'', Thomas H. Cormen , Charles E. Leiserson , Ronald L. Rivest , Clifford Stein, Wydawnictwa Naukowo - Techniczne, 2004.  
# ''Wprowadzenie do algorytmów'', Thomas H. Cormen , Charles E. Leiserson , Ronald L. Rivest , Clifford Stein, Wydawnictwa Naukowo - Techniczne, 2004.  
# ''Algorytmy i struktury danych'', L. Banachowski., K. Diks, W. Rytter, Wydawnictwa Naukowo - Techniczne, 2006.
# ''Algorytmy i struktury danych'', L. Banachowski., K. Diks, W. Rytter, Wydawnictwa Naukowo - Techniczne, 2006.

Wersja z 10:36, 16 cze 2006

Forma zajęć

Wykład (30 godzin) + laboratorium (30 godzin)

Opis

Projektowanie i analiza algorytmów. Przegląd podstawowych algorytmów i struktur danych.

Sylabus

Autorzy

  • Wojciech Rytter,
  • Krzysztof Diks

Wymagania wstępne

  • Wstęp do programowania
  • Metody programowania
  • Matematyka dyskretna
  • Logika i teoria mnogości

Zawartość

  • Podstawowe zasady analizy algorytmów:
    • poprawność,
    • złożoność obliczeniowa algorytmu (pesymistyczna, oczekiwana, koszt zamortyzowany),
    • złożoność problemu algorytmicznego.
  • Sortowanie:
    • sortowanie przez porównania (InsertionSort, QuickSort, MergeSort),
    • HeapSort, kopce binarne i kolejki priorytetowe,
    • złożoność problemu sortowania,
    • sortowanie pozycyjne.
  • Selekcja:
    • algorytm Hoare'a,
    • algorytm magicznych piątek.
  • Wyszukiwanie:
    • liniowe,
    • binarne,
    • drzewa poszukiwań binarnych,
    • zrównoważone drzewa poszukiwań binarnych,
    • B-drzewa,
    • haszowanie.
  • Algorytmy grafowe:
    • DFS i jego zastosowania,
    • problemy ścieżkowe -- Algorytm Dijkstry i jego implementacje,
    • minimalne drzewo rozpinające.
  • Algorytmy tekstowe:
    • wyszukiwanie wzorca w tekście - algorytmy Knutha-Morisa-Pratta i Boyera-Moora,
    • kompresja tekstów.
  • NP-zupełność
    • Klasa NP
    • Problemy NP-trudne i NP-zupełne

Literatura

  1. Wprowadzenie do algorytmów, Thomas H. Cormen , Charles E. Leiserson , Ronald L. Rivest , Clifford Stein, Wydawnictwa Naukowo - Techniczne, 2004.
  2. Algorytmy i struktury danych, L. Banachowski., K. Diks, W. Rytter, Wydawnictwa Naukowo - Techniczne, 2006.