Předmět je věnován návrhu, analýze a implementaci algoritmů s důrazem na hledání co nejefektivnějších algoritmů z hlediska výpočetní složitosti. Cílem kurzu je seznámit studenty s různými technikami, které jsou standardně používány při návrhu algoritmů, jako například dynamické programování, greedy algoritmy nebo různé metody prohledávání stavového prostoru, přičemž použití těchto technik je ilustrováno na řadě problémů z různých oblastí informatiky.
Doporučená literatura
- Skiena, S. S., Revilla, M. A.: Programming Challenges: The Programming Contest Training Manual, Springer, 2003.
- Cormen, T. H., Leiserson, R. L., Rivest, R. L., Stein, C.: Introduction to Algorithms, MIT Press 2001.
- Dasgupta, S., Papadimitriou, C., Vazirani, U.: Algorithms, McGraw-Hill, 2006.
- Skiena, S. S.: The Algorithm Design Manual, Springer, 1998.
- Knuth, D. E.: The Art of Computer Programming, Volumes 1-3, (2nd edition), Addison-Wesley Professional, 1998.
- Graham, R. L., Knuth, D. E., Patashnik, O.: Concrete Mathematics: A Foundation for Computer Science, Addison-Wesley Professional, 1994.
- Sedgewick, R.: Algoritmy v C, SoftPress s.r.o., 2003.