Ke knize jsou zdrojové soubory ke knize! Další materiály: Pavel Töpfer
Toto je základní literatura, podle které se probírá předmět Programování I - NPRG030 na Matematicko-fyzikální fakultě Univerzity Karlovy v Praze. I já jsem si kdysi touto literaturou prošla :).
Pavel Töpfer: Algoritmy a programovací techniky.
Obsah knihy
- Úvod
- Několik užitečných pojmů
- Složitost algoritmů
- Není číslo jako číslo
- Základní datové struktury
- Ukládání a vyhledávání údajů
- Seznamy prvků
- Prohledávání do hloubky a do šířky
- Práce s grafy
- Rozděl a panuj
- Třídění údajů
- Zpracování aritmetických výrazů
- Efektivita rekurzivních algoritmů
- Dynamické programování
- Techniky návrhu efektivních algoritmů
- Seznam programových ukázek
- Literatura
- Rejstřík
Podrobný obsah knihy:
- Úvod
- Několik užitečných pojmů
- Množiny a posloupnosti
- Stromy a grafy
- Logaritmus
- Složitost algoritmů
- Význam efektivity
- Časová a paměťová složitost
- Porovnávání algoritmů
- Dodatky k otázce složitosti
- Není číslo jako číslo
- Celá a reálná čísla
- Zaokrouhlovací chyby
- Ordinální datové typy
- Základní datové struktury
- Pole, záznam, množina, řetězec
- Vyhledávání v poli
- Lineární spojový seznam
- Dynamická reprezentace stromu a grafu
- Objekty
- Ukládání a vyhledávání údajů
- Pole příznaků
- Seznamy prvků
- Uspořádaný seznam prvků
- Binární vyhledávací strom
- Vyvážené binární stromy
- 2-3-stromy
- Hlada
- Rozptýlené tabulky
- Seznamy prvků
- Zásobník
- Fronta
- Prohledávání do hloubky a do šířky
- Procházení stromem a grafem
- Procházení stavovým prostorem
- Ořezávání a heuristiky
- Práce s grafy
- Reprezentace grafu v programu
- Komponenty souvislosti grafu
- Topologické uspořádání
- Hledání nejkratší cesty
- Minimální kostra grafu
- Bipartitní grafy
- Rozděl a panuj
- Quicksort
- Třídění sléváním
- Hanojské věže
- Vyhodnocení výrazu
- Třídění údajů
- Algoritmy vnitřního třídění
- Složitost vnitřního třídění
- Přihrádkové třídění
- Hledání K-tého nejmenšího prvku
- Vnější třídění
- Zpracování aritmetických výrazů
- Reprezentace aritmetického výrazu
- Vyhodnocení aritmetického výrazu
- Převody mezi aritmetickými notacemi
- Efektivita rekurzivních algoritmů
- Fibonacciho čísla
- Silniční daň
- Dynamické programování
- Úloha o násobení matic
- Úloha o triangulaci mnohoúhelníku
- Úloha o cestování
- Techniky návrhu efektivních algoritmů
- Odstranění opakovaných výpočtů
- Přímé generování požadovaných údajů
- Výpočet nové hodnoty na základě předchozí
- Předzpracování vstupních dat
- Seznam programových ukázek
- Literatura
- Rejstřík