Co nás zajímá na algoritmech.

Téma 1 -- řadící algoritmy
Co potřebujete vědět o logaritmech.
Notace velké O, v průvodci je na str. 47 tabulka 2.2 pro vybrané velikosti vstupu a vybrané časové složitosti, na str. 48 pak tabulka 2.3 doby běhu takových algoritmů na současném hardwaru.
Časovou složitost binárního vyhledávání najdete v řešení úlohy 29-Z1-6 z KSP.
repl na řadící algoritmy,
repl na algoritmy na vyhledávání prvku.

Animace řadících algoritmů (dle výkladu studenta Ondřeje Svárovského při zkoušení): Merge sort, Quick sort.

Prezentace k témetům 1 i 2 (Merge sort, DFS, LIFO)

Téma 2 -- prohledávání grafu do šířky (BFS) a do hloubky (DFS)
Základní pojmy teorie grafů.
Typická úloha na použití BFS je hledání nejkratší cesty v grafu s neohodnocenými hranami (tedy hrany mají stejnou délku). Úlohu ilustrujeme na šachovnici -- hledáme nejkratší cestu koněm mezi dvěma poli: repl.
Videa na DFS: část 1 (začátek), část 2 (závěr). Ve videích není zmínka o zásobníku: do zásobníku vkládáme objevené hrany (ve videu nazývané discovered) a ze zásobníku odebíráme tyto hrany při backtrackingu (termín používaný i v češtině).
pseudokód DFS, BFS
Videa od vašeho spolužáka: DFS, BFS.

Téma 3 -- algoritmy na nejkratší cestu v grafu
Popis problému, pseudokód.
Pseudokód v průvodci, kapitola o nejkratších cestách, strany 147, 150.
Dijkstrův algoritmus repl.
prezentace na Dijkstrův algoritmus
prezentace na Bellman-Fordův algoritmus (použití BFS)
prezentace k pojmům, otevřený, uzavřený vrchol, relaxace vrcholu

Téma 4 -- algoritmy na minimální kostru grafu
Jarníkův algoritmus: pseudokód Jarníkova algoritmu, důkaz správnosti včetně řezového lemmatu najdete na stranách 167 až 170 v průvodci. Na stranách 171, 172 implementaci Jarníkova algoritmu pomocí haldy.
Ilustrace elementárního řezu a řezového lemmatu,
ilustrace k důkazu řezového lemmatu.
pseudokód Jarníkova algoritmu s haldou/listem, časová složitost

K tématům 3, 4
Datová struktura halda (binární): halda před videem, video o haldě, halda po videu.