zkouška
materiály
vlastnosti algoritmu – konečnost, hromadnost, resultativnost, jednoznačnost, determinismus (nebude na zkoušce :)
determinismus – po provedení každého kroku je jednoznačně určeno, který krok se bude provádět dále
správnost Eukleidova algoritmu
efektivita algoritmu – funkce velikosti vstupních dat
asymptotická časová složitost
složitost algoritmu v různých případech – v nejlepším (prakticky se nepoužívá), nejhorším (používá se nejčastěji) a průměrném (je obtížné odvodit tuto složitost)
algoritmus problému stabilních manželství – v nejhorším případě , v nejlepším případě
složitost problému – složitost nejlepšího algoritmu (z hlediska časové složitosti), kterým lze řešit daný problém; odvození bývá často obtížné, pro řadu problémů neznáme
složitost problému vnitřního třídění –
test prvočíselnosti
hledání všech prvočísel od 2 do N
úloha: vyhodnocení polynomu v bodě x (dosazení konkrétního x do polynomu)
operace s polynomy
nejdříve polynom uložíme do pole – index v poli odpovídá mocnině (první prvek v poli je absolutní člen)
vyhledávání v seznamu
třídění sléváním (merge sort)
problém třídění n dat – musíme udělat porovnání
třídění počítáním (counting sort)
přihrádkové třídění (bucket sort)
víceprůchodové přihrádkové třídění (radix sort)
vnější třídění = třídění dat, která se nevejdou do paměti (tedy je máme uložená v souborech)
lze použít merge sort
seznam vs. pole
abstraktní datové typy
ukončení rekurze
Fibonacciho posloupnost
doplnění znamének
rozklad čísla na součet kladných celých sčítanců
průchod do hloubky
průchod do šířky
binární vyhledávací strom
hledání pokladu v bludišti
urychlení prohledávání do hloubky
prohledávání stavového prostoru do šířky – breadth-first search (BFS), algoritmus „vlny“
zkouška
minimax
rozděl a panuj (divide et impera)
nalezení K-tého nejmenšího prvku z N čísel
quickselect
lineární algoritmus
vyhodnocení aritmetického výrazu reprezentovaného binárním stromem
reprezentace grafu v programu
časová složitost – záleží na reprezentaci grafu
ke zkoušce: zdůvodnit, proč má algoritmus takovou časovou složitost
obecný strom
hešování – hešovací funkce mi z klíče vyrobí index