Předmět je základní jednotka výuky, jejímž prostřednictvím si student osvojí ucelenou část souboru znalostí a dovedností, potřebnou pro zvládnutí studijního oboru/specializace. Za věcný obsah předmětu zodpovídá garant předmětu. Časovou náročnost předmětu zhruba vyjadřuje atribut předmětu rozsah kontaktní výuky. Například rozsah = 2+2 značí, že předmět bude mít týdně dvě hodiny přednášek a dvě hodiny cvičení týdně. Na závěr semestru musí vyučující provést vyhodnocení, nakolik si ten který student osvojil poznatky a dovednosti, kterých měl během výuky nabýt. Jakým způsobem toto hodnocení vyučující provedou určuje atribut způsob zakončení. U předmětu lze definovat, že předmět je zakončen pouze zápočtem(Z), klasifikovaným zápočtem(KZ), pouze zkouškou(ZK), nebo zápočtem a zkouškou(Z,ZK). Náročnost úspěšného absolvování předmětu je vyjádřena ECTS kreditními body. Výuka předmětu probíhá během semestru. Opakovaně se předmět vyučuje vždy v zimním(Z), nebo v letním(L) semestru každého akademického roku. Výjimečně může předmět být nabízen studentům v obou semestrech(Z,L). Za organizační zajištění výuky zodpovídá přiřazená katedra, která zejména vytvoří časový rozvrh předmětu a zajistí pro předmět vyučující. Někteří přednáší a zkouší, jiní vedou cvičení a udělují zápočty.
Obsahová náplň a další organizační informace, týkající se předmětu je popsána pomocí různých popisných textů(anotace, týdenní osnova, literatura, apod.)
$DODATEK_POPIS
BIK-EFA | Efektivní algoritmy | Rozsah kontaktní výuky: | 13KP+4KC | ||
---|---|---|---|---|---|
Vyučující: | Způsob zakončení: | Z,ZK | |||
Zodpovědná katedra: | 18101 | ECTS Kredity: | 5 | Semestr: | Z |
Anotace:
Studenti získají důkladný přehled efektivních algoritmů pro řešení standardních problémů. Umějí pracovat s asymptotickou notací používanou při vyjadřování složitosti. Rozumějí algoritmům pro řazení o složitosti O(n.log n), pro speciální řazení s lineární složitostí a pro řazení ve vnějších pamětech, algoritmům asociativního a adresního vyhledávání (vyhledávací stromy, rozptýlené tabulky, vícerozměrné vyhledávací stromy). Znají a umějí používat pokročilé datové struktury. Ovládají metody používané pro analýzu paměťové a operační složitosti algoritmů.
Osnovy přednášek:
1. | Algoritmy nad poli, vícerozměrná pole a mapovací funkce. ADT Seznam, Fronta, Zásobník.^2. ADT Tabulka, Množina. Rozptylovací tabulky.^3.Základní algoritmy řazení. Stromy a binární haldy.^4. Algoritmy řazení. Binomiální a Fibonnaciho haldy.^5. Vyhledávání a vyhledávací stromy. Rekurzivní algoritmy.^6. B-stromy a jejich varianty. Vyvažované vyhledávací stromy.^7.Dynamické programování. |
Osnovy cvičení:
1. | Procvičování a opakováni diskrétní a asymptotické matematiky. [2] Implementace, stabilizace, analýza složitosti algoritmů řazení. Implementace a analýza složitosti algoritmů externího řazení. Srovnání rekurzivních a iteračních algoritmů, převody. Použití pokročilých hald. Použití metod dynamického programování. | |
2. | Adresní vyhledávání, návrh mapovacích funkcí. Používání rozptýlených tabulek, otevřené a řetězené adresování. Vyhledávací a binární vyhledávací stromy, hledání vzoru v textu. Vyhledávací stromy pro vícerozměrné vyhledávání, vyhledávání nejbližšího souseda. Vyvažování vyhledávacích stromů. |
Literatura:
1. | Cormen, T. H., Leiserson, C. E., Rivest, R. L. ''Introduction to Algorithms''. The MIT Press, 2001. ISBN 0262032937. | |
2. | Sedgewick, R. ''Algorithms in Java, Parts 1-4 (3rd Edition)''. Addison-Wesley Professional, 2002. ISBN 0201361205. |
Požadavky:
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.
|
Předmět je zahrnut do těchto studijních plánů:
Stránka vytvořena 25. 4. 2024, semestry: L/2019-20, Z/2022-3, Z/2021-2, Z/2019-20, Z/2020-1, L/2022-3, Z/2024-5, L/2020-1, Z,L/2023-4, L/2021-2, připomínky k informační náplni zasílejte správci studijních plánů | Návrh a realizace: J. Novák, I. Halaška |