|
|
|
||
Předmět pokrývá to nejzákladnější z efektivních algoritmů, datových struktur a teorie grafů, které by měl znát každý informatik. Spolupracuje se souběžně vyučovaným předmětem BI-ZDM, ve kterém studenti získají znalosti a dovednosti nezbytné pro vyhodnocování operační a paměťové složitosti algoritmů a naučí se prakticky používat asymptotickou matematiku. Poslední úprava: Jirát Jiří (23.01.2017)
|
|
||
Studenti budou umět:
Poslední úprava: Svozil Daniel (29.03.2016)
|
|
||
Z:Cormen, T. H., Leiserson, C. E., Rivest, R. L. Introduction to Algorithms. The MIT Press, 2001. ISBN 0262032937. Z:Handbook of Graph Theory, 2nd Edition (Discrete Mathematics and Its Applications). Chapman and Hall/CRC, 2013. ISBN 978-1439880180. Poslední úprava: Jirát Jiří (23.01.2017)
|
|
||
Osnovy přednášek: 1. Motivace a úvod do teorie grafů 2. Základní definice a pojmy teorie grafů I 3. Základní definice a pojmy teorie grafů II 4. Řadící algoritmy O(n^2). Binární haldy a HeapSort. 5. Nafukovací pole, amortizovaná složitost, binomiální haldy 6. Vyhledávací stromy a jejich vyvažování 7. Pravděpodobnostní algoritmy a jejich složitost. QuickSort. 8. Rekurzivní algoritmy a metoda Rozděl a panuj. Lineární řazení 9. Rozptylování (hešování) a vyhledávací tabulky 10. Dynamické programování 11. Minimální kostry grafu 12. Nejkratší cesty v grafech 13. Rezerva
Osnovy cvičení: 1. Motivace a úvod do teorie grafů 2. Základní definice a pojmy teorie grafů I 3. Základní definice a pojmy teorie grafů II 4. Řadící algoritmy O(n^2). Binární haldy a HeapSort. 5. Nafukovací pole, amortizovaná složitost, binomiální haldy 6. Vyhledávací stromy a jejich vyvažování 7. Pravděpodobnostní algoritmy a jejich složitost. QuickSort. 8. Rekurzivní algoritmy a metoda Rozděl a panuj. Lineární řazení 9. Rozptylování (hešování) a vyhledávací tabulky 10. Dynamické programování 11. Minimální kostry grafu 12. Nejkratší cesty v grafech 13. Rezerva Poslední úprava: Jirát Jiří (23.01.2017)
|
|
||
Předpokládá se schopnost aktivního algoritmického řešení základních typů úloh, znalost nějakého vyššího programovacího jazyka (Java, C++) a znalost základních pojmů z matematické analýzy a kombinatoriky. Poslední úprava: Svozil Daniel (29.03.2016)
|
Zátěž studenta | ||||
Činnost | Kredity | Hodiny | ||
Účast na přednáškách | 1 | 28 | ||
Práce na individuálním projektu | 1.5 | 42 | ||
Příprava na zkoušku a její absolvování | 1.1 | 30 | ||
Účast na seminářích | 1 | 28 | ||
5 / 6 | 128 / 168 |