1. vydání E-KNIHY odpovídá 2. vydání tištěné knihy
Kniha je učebnicí programování zaměřenou na výklad základních datových struktur, algoritmů a programovacích technik. Některé postupy jsou pro řešení programátorských úloh typické a v různých obměnách se v programech často opakují. Právě takovéto obvyklé algoritmy a programátorské obraty kniha přiblíží a předvede jejich užití v konkrétních příkladech. Programové ukázky jsou k dispozici zde. http://ksvi.mff.cuni.cz/~topfer/Algoritmy/
- 2.1 Množiny a posloupnosti
- 2.2 Stromy a grafy
- 2.3 Logaritmus
- 3.1 Význam efektivity
- 3.2 Časová a paměťová složitost
- 3.3 Porovnávání algoritmů
- 3.4 Dodatky k otázce složitosti
- 4.1 Celá a reálná čísla
- 4.2 Zaokrouhlovací chyby
- 4.3 Ordinální datové typy
- 5.1 Pole, záznam, množina, řetězec
- 5.2 Vyhledávání v poli
- 5.3 Lineární spojový seznam
- 5.4 Dynamická reprezentace stromu a grafu
- 5.5 Objekty
- 6.1 Pole příznaků
- 6.2 Seznam prvků
- 6.3 Uspořádaný seznam prvků
- 6.4 Binární vyhledávací strom
- 6.5 Vyvážené binární stromy
- 6.6 2-3-stromy
- 6.7 Halda
- 6.8 Rozptýlené tabulky
- 7.1 Zásobník
- 7.2 Fronta
- 8.1 Procházení stromem a grafem
- 8.2 Procházení stavovým prostorem
- 8.3 Ořezávání a heuristiky
- 9.1 Reprezentace grafu v programu
- 9.2 Komponenty souvislosti grafu
- 9.3 Topologické uspořádání
- 9.4 Hledání nejkratší cesty
- 9.5 Minimální kostra grafu
- 9.6 Bipartitní grafy
- 10.1 Quicksort
- 10.2 Třídění sléváním
- 10.3 Hanojské věže
- 10.4 Vyhodnocení výrazu
- 11.1 Algoritmy vnitřního třídění
- 11.2 Složitost vnitřního třídění
- 11.3 Přihrádkové třídění
- 11.4 Hledání K-tého nejmenšího prvku
- 11.5 Vnější třídění
- 12.1 Reprezentace aritmetického výrazu
- 12.2 Vyhodnocení aritmetického výrazu
- 12.3 Převody mezi aritmetickými notacemi
- 13.1 Fibonacciho čísla
- 13.2 Silniční síť
- 14.1 Úloha o násobení matic
- 14.2 Úloha o triangulaci mnohoúhelníku
- 14.3 Úloha o cestování
- 15.1 Odstranění opakovaných výpočtů
- 15.2 Přímé generování požadovaných údajů
- 15.3 Výpočet nové hodnoty na základě předchozí
- 15.4 Předzpracování vstupních dat