Algoritmy a datové struktury I - NTIN060
Anglický název: Algorithms and Data Structures I
Zajišťuje: Katedra teoretické informatiky a matematické logiky (32-KTIML)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2016 do 2016
Semestr: letní
E-Kredity: 5
Rozsah, examinace: letní s.:2/2, Z+Zk [HT]
Počet míst: neomezen
Minimální obsazenost: neomezen
4EU+: ne
Virtuální mobilita / počet míst pro virtuální mobilitu: ne
Stav předmětu: vyučován
Jazyk výuky: čeština, angličtina
Způsob výuky: prezenční
Způsob výuky: prezenční
Garant: Mgr. Martin Mareš, Ph.D.
prof. RNDr. Ondřej Čepek, Ph.D.
Třída: Informatika Bc.
Kategorizace předmětu: Informatika > Teoretická informatika
Výsledky anket   Termíny zkoušek   Rozvrh   Nástěnka   
Anotace -
Poslední úprava: doc. RNDr. Pavel Töpfer, CSc. (01.02.2018)
Úvodní přednáška o základních typech algoritmů a datových strukturách potřebných pro jejich implementaci.
Cíl předmětu
Poslední úprava: T_KTI (23.05.2008)

Naučit základní datové struktury, algoritmy a metody teoretické informatiky

Literatura
Poslední úprava: RNDr. Jan Hric (03.10.2017)
Sylabus -
Poslední úprava: doc. RNDr. Pavel Töpfer, CSc. (01.02.2018)

Prostředky pro popis složitosti algoritmů a operací nad datovými strukturami:

měření velikosti dat, počet kroků algoritmu jako funkce velikosti dat

asymptotická notace

Stromové datové struktury:

binární vyhledávací stromy

AVL stromy

červeno-černé stromy

volitelně B-stromy

Hašování:

popis jednoduchých strategií řešení kolizí

analýza časové složitosti vyhledávání v průměrném případě

Třídění:

analýza průměrného případu pro Quicksort, randomizovaný Quicksort

dolní odhad složitosti porovnávacích třídících algoritmů (rozhodovací stromy)

třídění v lineárním čase na základě adresování pomocí klíčů (víceprůchodové pro znakové klíče)

Základní grafové algoritmy:

prohledávání do hloubky a do šířky na neorientovaném grafu

detekce souvislých a silně souvislých komponent

prohledávání do hloubky na orientovaném grafu, tranzitivní uzávěr, topologické číslování

Extremální cesty v grafech:

extremální cesty v acyklickém orientovaném grafu, metoda kritické cesty

Dijkstrův algoritmus (zopakování binární haldy, srovnání implementace polem a binární haldou)

Bellman-Fordův algoritmus (hledání záporných cyklů)

volitelně Floyd-Warshallův algoritmus

Minimální kostra grafu:

algoritmus Borůvka-Kruskal

algoritmus Jarník-Prim

volitelně popis pomocí vážených matroidů

Algoritmy rozděl a panuj:

obecné schéma algoritmů typu rozděl a panuj, souvislost jejich složitosti s rekurentními rovnicemi

substituční metoda řešení rekurentních rovnic a "master theorem (kuchařka)"

jednoduché aplikace: binární vyhledávání a mergersort

složitější aplikace: Strassenovo násobení matic, volitelně hledání mediánu v lin. čase v nejhorším případě

Algoritmy lineární algebry:

Euklidův algoritmus

LUP dekompozice matic a její využití

volitelně vlastní čísla a vektory - numerický výpočet, aplikace (Google PageRank, minimální řez grafu)

.