Efektivní algoritmy
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
BIK-EFA | Z,ZK | 5 | 13KP+4KC | česky |
- Garant předmětu:
- Přednášející:
- Cvičící:
- Předmět zajišťuje:
- katedra teoretické informatiky
- 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ů.
- 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.
- Osnova 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í.
- Osnova 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ů.
- Cíle studia:
-
Cílem předmětu je naučit studenty standardní soubor algoritmů a naučit jej rozpoznávat vhodné příležitosti pro použití jejich různých variant. Současně s návrhem či přizpůsobováním algoritmů se studenti mají naučit i základní metody analýzy složitosti algoritmů jakožto hlavního kritéria jejich efektivnosti. Cílem je rozvíjet u studentů schopnost samostatného návrhu a analýzy algoritmů.
- Studijní materiály:
-
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.
- Poznámka:
-
Informace o předmětu a výukové materiály naleznete na https://courses.fit.cvut.cz/BI-EFA/
Dvojici předmětů EFA + GRA lze uznat, jestliže student úspěšně absolvuje dvojici předmětů AG1 + AG2.
Student, kterému chybí EFA si zapíše AG1 a dělá rozdílovou zkoušku.
Znovu přijatému studentu, kterému bude uznaný předmět EFA z minulého studia si zapíše předmět AG1 a může požádat o uznání zápočtu.
- Další informace:
- https://courses.fit.cvut.cz/BI-EFA/
- Pro tento předmět se rozvrh nepřipravuje
- Předmět je součástí následujících studijních plánů:
-
- Bc. program Informatika, pro fázi studia bez oboru, kombi., 2015 - 2020 (VO)
- Bc. obor Bezpečnost a informační technologie, kombi., 2015 - 2019 (volitelný předmět)
- Bc. obor Webové a softwarové inženýrství, zaměření Softwarové inženýrství, kombi., 2015 - 2020 (volitelný předmět)
- Bc. obor Bezpečnost a informační technologie, kombinovaná forma studia, 2020 (volitelný předmět)