Definice: Výpočetní model RAM
literál
, [adresa]
, [[nepřímá adresace]]
kam ← co
kam ← a OP b
, kde OP může být +-*/&|^«»
halt
(za programem implicitní)goto KAM
if a REL b goto KAM
=, <>, <, >, <=, >=
Definice: Čas a prostor konkrétního výpočtu, časová a prostorová složitost
Definice: Asymptotická notace: O, Ω, Θ
Algoritmus: Prohledávání do šířky (BFS)
Algoritmus: Prohledávání do hloubky (DFS)
Definice: Klasifikace hran v DFS
Algoritmus: Hledání mostů v neorientovaných grafech
low
pro je minimum z low
synů a in
zpětných hran z (respektive in
vrcholu, do nějž zpětná hrana z vede)Algoritmus: Detekce cyklů pomocí DFS
out
emout
out
– to platí pouze pro zpětné hranyDefinice: Acyklický orientovaný graf (DAG), zdroj, stok
Definice: Topologické uspořádání DAGu
Algoritmus: Konstrukce topologického uspořádání
out
na hraně a nepřítomnost zpětných hran)Příklad: Princip indukce podle topologického uspořádání
Algoritmus: Počet cest mezi dvěma vrcholy v DAGu
indukcí přes topologické uspořádání, v čase
Definice: Silná souvislost, její komponenty, graf komponent
Algoritmus: Rozklad grafu na komponenty silné souvislosti
Definice: Vzdálenost v grafu
Věta: Trojúhelníková nerovnost pro vzdálenost
Algoritmus: Dijkstrův algoritmus
Příklad: Implementace Dijkstrova algoritmu pomocí haldy
Algoritmus: Obecný relaxační algoritmus
Algoritmus: Bellmanův-Fordův algoritmus
Algoritmus: Jarníkův algoritmus
Věta: Lemma o řezech
Věta: Jednoznačnost minimální kostry
Algoritmus: Borůvkův algoritmus
Algoritmus: Kruskalův algoritmus
Algoritmus: Union-Find
Definice: Rozhraní slovníku, množiny a jejich uspořádaných verzí
Definice: Binární vyhledávací strom (BVS)
Algoritmus: Operace Find, Insert a Delete v BVS
Definice: Dokonale vyvážený strom
Definice: AVL strom
Věta: Odhad hloubky AVL stromu
Definice: Rotace hrany stromu
Algoritmus: Operace Insert a Delete v AVL stromech
Definice: Vícecestný vyhledávací strom a (a,b)-strom
Věta: Odhad hloubky (a,b)-stromu
Algoritmus: Operace Insert a Delete v (a,b)-stromech
Příklad: Volba parametrů (a,b)-stromu
Definice: Trie
Algoritmus: Operace Find, Insert a Delete v trii
Příklad: Použití trie k reprezentaci čísel
Definice: Hešování s řetězci v přihrádkach
Algoritmus: Operace Find, Insert a Delete v hešování s řetězci
Algoritmus: Dynamické rozšiřování tabulky
Definice: c-univerzální systém funkcí
Věta: Konstrukce 1-univerzálního systému pomocí skalárního součinu
Věta: Průměrná složitost operací při náhodné volbě hešovací funkce z c-univerzálního systému
Algoritmus: Třídění sléváním (Mergesort)
Algoritmus: Násobení n-ciferných čísel v čase
Věta: Kuchařková věta (Master theorem)
Algoritmus: Strassenův algoritmus na násobení matic (vzorce nezkouším)
Algoritmus: Quickselect – hledání k-tého nejmenšího prvku
Věta: Průměrná časová složitost Quickselectu při náhodné volbě pivota
Algoritmus: k-tý nejmenší prvek v lineárním čase (algoritmus s pěticemi)
Algoritmus: Quicksort
Věta: Průměrná časová složitost Quicksortu při náhodné volbě pivota
Algoritmus: Nejdelší rostoucí podposloupnost
Algoritmus: Editační vzdálenost řetězců
Algoritmus: Konstrukce optimálního BVS
Algoritmus: Floydův-Warshallův algoritmus na výpočet vzdáleností v grafu
Příklad: Princip dynamického programování
Příklad: Grafová interpretace dynamického programování