Algorytmy i struktury danych
Program i materiały do zajęć
Program zajęć:
- Wprowadzenie,
- Problem "Wież Hanoi",
- Sumy,
- Meotda czynnika sumacyjnego,
- Szeregi: arytmetyczny, geometryczny, harmoniczny.
Polecana literatura:
- Cormen T. H., Leiserson C. E., Rivest R. L., Stein C.: Wprowadzenie do algorytmów, WNT, Warszawa 2004.
- Czech Z.J., Deorowicz S., Fabian P., Algorytmy i struktury danych. Wybrane zagadnienia,
Wydawnictwo Politechniki Śląskiej, Skrypt nr 2400, 2007.
- Graham R. L., Knuth D. E., Patashnik O.: Matematyka konkretna, PWN, Warszawa 1996.
- Reingold E. M., Nievergelt J., Deo N.: Algorytmy kombinatoryczne, PWN, Warszawa 1985.
Materiały dodatkowe:
Program zajęć:
Polecana literatura:
- Bentley J.: Perełki oprogramowania, WNT, Warszawa 1992.
- Cormen T. H., Leiserson C. E., Rivest R. L., Stein C.: Wprowadzenie do algorytmów, WNT, Warszawa 2004.
- Czech Z.J., Deorowicz S., Fabian P., Algorytmy i struktury danych. Wybrane zagadnienia,
Wydawnictwo Politechniki Śląskiej, Skrypt nr 2400, 2007.
- Harel D.: Rzecz o istocie informatyki: algorytmika, WNT, Warszawa 1992.
- Sedgewick R.: Algorytmy w C++, Wydawnictwo RM Sp. z o.o., Warszawa 1999.
- Wirth N.: Algorytmy + struktury danych = programy, WNT, Warszawa 2000.
Program zajęć:
Polecana literatura:
- Banachowski L., Diks K., Rytter W.: Algorytmy i struktury danych, WNT, Warszawa 1996.
- Bentley J.: Perełki oprogramowania, WNT, Warszawa 1992.
- Cormen T. H., Leiserson C. E., Rivest R. L., Stein C.: Wprowadzenie do algorytmów, WNT, Warszawa 2004.
- Czech Z.J., Deorowicz S., Fabian P., Algorytmy i struktury danych. Wybrane zagadnienia,
Wydawnictwo Politechniki Śląskiej, Skrypt nr 2400, 2007.
- Knuth D. E.: Sztuka programowania tom III: Sortowanie i Wyszukiwanie, WNT, Warszawa 2002.
- Sedgewick R.: Algorytmy w C++, Wydawnictwo RM Sp. z o.o., Warszawa 1999.
Materiały dodatkowe:
Program zajęć:
Polecana literatura:
- Cormen T. H., Leiserson C. E., Rivest R. L., Stein C.: Wprowadzenie do algorytmów, WNT, Warszawa 2004.
- Czech Z.J., Deorowicz S., Fabian P., Algorytmy i struktury danych. Wybrane zagadnienia,
Wydawnictwo Politechniki Śląskiej, Skrypt nr 2400, 2007.
- Sedgewick R.: Algorytmy w C++, Wydawnictwo RM Sp. z o.o., Warszawa 1999.
- Wirth N.: Algorytmy + struktury danych = programy, WNT, Warszawa 2000.
Materiały dodatkowe:
Program zajęć:
- Drzewa,
- Drzewa poszukiwań binarnych:
- Drzewa zrównoważone:
- Drzewa AVL, drzewa 2-3-4, splay trees,
- Drzewa czerwono-czarne: właściwości drzewa czerwono-czarnego, operacje rotacji,
- Listy z przeskokami.
Polecana literatura:
- Aho A. V., Hopcroft J. E., Ullman J.D.: Projektowanie i analiza algorytmów, Wydawnictwo Helion, Gliwice 2003.
- Brass P.: Advanced data structures, draft (pełna wersja), 2007.
- Cormen T. H., Leiserson C. E., Rivest R. L., Stein C.: Wprowadzenie do algorytmów, WNT, Warszawa 2004.
- Czech Z.J., Deorowicz S., Fabian P., Algorytmy i struktury danych. Wybrane zagadnienia,
Wydawnictwo Politechniki Śląskiej, Skrypt nr 2400, 2007.
- Sedgewick R.: Algorytmy w C++, Wydawnictwo RM Sp. z o.o., Warszawa 1999.
- Wirth N.: Algorytmy + struktury danych = programy, WNT, Warszawa 2000.
Materiały dodatkowe:
Program zajęć:
- Pojęcie tablicy mieszaj+/-cej i funkcji mieszającej, cechy dobrej funkcji mieszającej,
- Kolizje i metody ich rozwiązywania:
- Przykładowe funkcje mieszające:
- Restrukturyzacja tablic mieszających,
- Minimalna doskonała funkcja mieszająca.
Polecana literatura:
- Brass P.: Advanced data structures, draft (pełna wersja), 2007.
- Cormen T. H., Leiserson C. E., Rivest R. L., Stein C.: Wprowadzenie do algorytmów, WNT, Warszawa 2004.
- Czech Z.J., Deorowicz S., Fabian P., Algorytmy i struktury danych. Wybrane zagadnienia,
Wydawnictwo Politechniki Śląskiej, Skrypt nr 2400, 2007.
- Sedgewick R.: Algorytmy w C++, Wydawnictwo RM Sp. z o.o., Warszawa 1999.
- Wirth N.: Algorytmy + struktury danych = programy, WNT, Warszawa 2000.
Program zajęć:
- Wprowadzenie,
- Wyznaczanie liczb Fibonacciego:
- Wyznaczanie Najdłuższego Wspólnego Podciągu:
- Optymalne nawiasowanie macierzy.
Polecana literatura:
- Aho A. V., Hopcroft J. E., Ullman J.D.: Projektowanie i analiza algorytmów, Wydawnictwo Helion, Gliwice 2003.
- Banachowski L., Diks K., Rytter W.: Algorytmy i struktury danych, WNT, Warszawa 1996.
- Bentley J.: Perełki oprogramowania, WNT, Warszawa 1992.
- Cormen T. H., Leiserson C. E., Rivest R. L., Stein C.: Wprowadzenie do algorytmów, WNT, Warszawa 2004.
- Czech Z.J., Deorowicz S., Fabian P., Algorytmy i struktury danych. Wybrane zagadnienia,
Wydawnictwo Politechniki Śląskiej, Skrypt nr 2400, 2007,
- Sysło M.M.: Piramidy, szyszki i inne konstrukcje algorytmiczne, Wydawnictwa Szkole i Pedagogiczne, Warszawa 1998.
Program zajęć:
- Pojęcie grafu i podstawowe definicje: graf skierowany, graf nieskierowany, stopień wierzchołka, droga (ścieżka), prosta droga, cykl, cykl prosty, pętla,
graf spójny, drzewo, las, graf ważony,
- Metody reprezentacji grafów w pamięci: listy s+/-siedztwa, macierz sąsiedztwa,
- Wyznaczanie najkrótszych dróg w grafie ważonym:
- najkrótsze drogi z jednym źródłem,
- najkrótsze drogi z jednym wierzchołkiem docelowym,
- najkrótsza droga pomiędzy parą wierzchołków,
- najkrótsze drogi pomiędzy wszystkimi parami wierzchołków,
- algorytm Floyda–Warshalla,
- algorytm Dijkstry.
Polecana literatura:
- Cormen T. H., Leiserson C. E., Rivest R. L., Stein C.: Wprowadzenie do algorytmów, WNT, Warszawa 2004.
- Czech Z.J., Deorowicz S., Fabian P., Algorytmy i struktury danych. Wybrane zagadnienia,
Wydawnictwo Politechniki Śląskiej, Skrypt nr 2400, 2007.
- Lipski W.: Kombinatoryka dla programistów, WNT, Warszawa 2004.
- Sedgewick R.: Algorytmy w C++. Grafy, Wydawnictwo RM Sp. z o.o., Warszawa 2003.
Program zajęć:
Polecana literatura:
- Cormen T. H., Leiserson C. E., Rivest R. L., Stein C.: Wprowadzenie do algorytmów, WNT, Warszawa 2004.
- Czech Z.J., Deorowicz S., Fabian P., Algorytmy i struktury danych. Wybrane zagadnienia,
Wydawnictwo Politechniki Śląskiej, Skrypt nr 2400, 2007.
- Reingold E. M., Nievergelt J., Deo N.: Algorytmy kombinatoryczne, PWN, Warszawa 1985.
- Wirth N.: Algorytmy + struktury danych = programy, WNT, Warszawa 2000.
Materiały dodatkowe:
Program zajęć:
- Wprowadzenie,
- Problemy P, NP, NP-zupełne,
- Problem wydawania reszty,
- Kolorowanie grafu na przykładzie projektowania sekwencji zmiany świateł na skrzyżowaniu,
- Problem komiwojażera.
Polecana literatura:
- Aho A. V., Hopcroft J. E., Ullman J. D.: Algorytmy i struktury danych, Wydawnictwo Helion, Gliwice 2003.
- Bryant V.: Aspekty kombinatoryki, WNT, Warszawa 1997.
- Cormen T. H., Leiserson C. E., Rivest R. L., Stein C.: Wprowadzenie do algorytmów, WNT, Warszawa 2004.
- Czech Z.J., Deorowicz S., Fabian P., Algorytmy i struktury danych. Wybrane zagadnienia,
Wydawnictwo Politechniki Śląskiej, Skrypt nr 2400, 2007.
- Davis P. J., Hersh R.: Świat matematyki, PWN, Warszawa 1994.
- Kubale M., i in.: Optymalizacja dyskretna. Modele i metody kolorowania grafów, WNT, Warszawa 2002.
- Sysło M.M.: Piramidy, szyszki i inne konstrukcje algorytmiczne, Wydawnictwa Szkole i Pedagogiczne, Warszawa 1998.
- Wilson R. J.: Wprowadzenie do teorii grafów, PWN, Warszawa 1998.
Materiały dodatkowe:
Program zajęć:
Polecana literatura:
- Cormen T. H., Leiserson C. E., Rivest R. L., Stein C.: Wprowadzenie do algorytmów, WNT, Warszawa 2004.
- Czech Z.J., Deorowicz S., Fabian P., Algorytmy i struktury danych. Wybrane zagadnienia,
Wydawnictwo Politechniki Śląskiej, Skrypt nr 2400, 2007.
- Knuth D. E.: Sztuka programowania tom IV, z. 2: Generowanie wszystkich krotek i permutacji, WNT, Warszawa 2007.
- Lipski W.: Kombinatoryka dla programistów, WNT, Warszawa 2004.
- Reingold E. M., Nievergelt J., Deo N.: Algorytmy kombinatoryczne, PWN, Warszawa 1985.
Program zajęć:
- Wprowadzenie.
- Miara kompresji.
- Podstawowe metody kompresji.
- Kodowanie RLE.
- Kodowanie Huffmana.
- Kodowanie słownikowe (LZSS, LZW).
- Kodowanie arytmetyczne.
Polecana literatura:
- Cormen T. H., Leiserson C. E., Rivest R. L., Stein C.: Wprowadzenie do algorytmów, WNT, Warszawa 2004.
- Czech Z.J., Deorowicz S., Fabian P., Algorytmy i struktury danych. Wybrane zagadnienia,
Wydawnictwo Politechniki Śląskiej, Skrypt nr 2400, 2007.
- Skarbek W.: Metody reprezentacji obrazów cyfrowych, Akademicka Oficyna Wydawnicza PLJ, Warszawa 1993.
- Sayood K.: Kompresja danych. Wprowadzenie, Wydawnictwo RM, Warszawa 2002.
Zestaw przykładowych zadań do kolokwiów i egzaminu
Zestaw zawiera przykładowe zadania do tematów z całego semestru.
Literatura
Literatura podstawowa
- Cormen T. H., Leiserson C. E., Rivest R. L., Stein C.: Wprowadzenie do algorytmów, WNT, Warszawa 2004.
- Czech Z.J., Deorowicz S., Fabian P., Algorytmy i struktury danych. Wybrane zagadnienia,
Wydawnictwo Politechniki Śląskiej, Skrypt nr 2400, 2007.
- Sedgewick R.: Algorytmy w C++, Wydawnictwo RM Sp. z o.o., Warszawa 1999.
Literatura uzupełniająca
- Aho A. V., Hopcroft J. E., Ullman J. D.: Algorytmy i struktury danych, Wydawnictwo Helion, Gliwice 2003.
- Aho A. V., Hopcroft J. E., Ullman J.D.: Projektowanie i analiza algorytmów, Wydawnictwo Helion, Gliwice 2003.
- Banachowski L., Diks K., Rytter W.: Algorytmy i struktury danych, WNT, Warszawa 1996.
- Bentley J.: Perełki oprogramowania, WNT, Warszawa 1992.
- Brass P.: Advanced data structures, draft (pełna wersja), 2007.
- Bryant V.: Aspekty kombinatoryki, WNT, Warszawa 1997.
- Davis P. J., Hersh R.: |wiat matematyki, PWN, Warszawa 1994.
- Graham R. L., Knuth D. E., Patashnik O.: Matematyka konkretna, PWN, Warszawa 1996.
- Harel D.: Rzecz o istocie informatyki: algorytmika, WNT, Warszawa 1992.
- Knuth D. E.: Sztuka programowania tomy I–III, WNT, Warszawa 2002.
- Knuth D. E.: Sztuka programowania tom IV, z. 2: Generowanie wszystkich krotek i permutacji, WNT, Warszawa 2007.
- Kubale M., i in.: Optymalizacja dyskretna. Modele i metody kolorowania grafów, WNT, Warszawa 2002.
- Reingold E. M., Nievergelt J., Deo N.: Algorytmy kombinatoryczne, PWN, Warszawa 1985.
- Sayood K.: Kompresja danych. Wprowadzenie, Wydawnictwo RM, Warszawa 2002.
- Sedgewick R.: Algorytmy w C++. Grafy, Wydawnictwo RM Sp. z o.o., Warszawa 2003.
- Skarbek W.: Metody reprezentacji obrazów cyfrowych, Akademicka Oficyna Wydawnicza PLJ, Warszawa 1993.
- Sysło M.M.: Piramidy, szyszki i inne konstrukcje algorytmiczne, Wydawnictwa Szkole i Pedagogiczne, Warszawa 1998.
- Wilson R. J.: Wprowadzenie do teorii grafów, PWN, Warszawa 1998.
- Wirth N.: Algorytmy + struktury danych = programy, WNT, Warszawa 2000.
Ciekawe miejsca w Internecie
- A compendium of NP optimization problems,
- Algorithms,
- Ang W., Tan C.W., Ng M.: Animated Algorithms,
- Knuth D.E.: Computer Musings Lecture Series
— Nagrania wideo z wykładyów z algorytmiki prowadzone przez prof. Knutha na Uniwersytecie Stanforda,
- Morris J: Data Structures and Algorithms,
- Dictionary of Algorithms and Data Structures,
- Mastering the Game. A History of Computer Chess,
- Priority Queues,
- The On-Line Encyclopedia of Integer Sequences,
- The Object Oriented Programming Web — Algorithms Directory,
- Wikipedia.org,
- Wolfram Math World.
Inne miejsca
Strona przedmiotu prowadzona jest również na Platformie Zdalnej Edukacji.