Matematická olympiáda – kategorie P

Knihovna základních algoritmů

Pokud ve svém řešení teoretické úlohy chcete použít nějaký základní algoritmus, jako třeba binární vyhledávání v uspořádaném poli, nemusíte ho detailně popisovat. Někdy ale nemusí být jasné, které algoritmy jsou „dostatečně základní“.

Uvádíme proto seznam algoritmů a datových struktur, které v MO-P považujeme za natolik známé, že se na ně v řešení stačí odkázat a není potřeba uvádět detaily. Pokud si algoritmus potřebujete nějak přizpůsobit, stačí popsat pouze změny od základní verze.

Ostatní algoritmy je potřeba popsat celé.

Matematika

Euklidův algoritmus

Eratosthénovo síto

Faktorizace

Posloupnosti

Označme n délku posloupnosti.

Merge sort

Bucket sort

Binární vyhledávání

Grafy

Označme n počet vrcholů grafu a m počet jeho hran.

Prohledávání do hloubky

Prohledávání do šířky

Dijkstrův algoritmus

Bellman-Fordův algoritmus

Floydův-Warshallův algoritmus

Jarníkův algoritmus

Kruskalův algoritmus

Topologické uspořádání

Geometrie

Základy

Konvexní obal

Datové struktury

U datových struktur uvádíme operace, které podporují, s jejich složitostmi.

Fronta

Zásobník

Nafukovací pole

Prefixové součty

2D prefixové součty

Vyhledávací strom

Písmenkový strom (Trie)

Binární halda

Disjoint set union

Intervalový strom (s línou aktualizací)