
Kurz datových struktur a algoritmů
Osvojte si každou zásadní datovou strukturu a algoritmus, které potřebujete ke zvládnutí technických pohovorů a tvorbě vysoce výkonného softwaru. Tento kurz vás provede od základů práce s pamětí až po dynamické programování, grafové algoritmy a NP-úplnost. Ať už se připravujete na pohovory do společností typu FAANG, nebo si zvyšujete své inženýrské dovednosti, jedná se o nejkomplexnější dostupný zdroj o datových strukturách a algoritmech.
Co se naučíte:
Získáte hluboké a praktické porozumění datovým strukturám, včetně polí, spojových seznamů, stromů, grafů a hashovacích tabulek. Naučíte se analyzovat efektivitu algoritmů pomocí notace Big-O, Big-Theta a Big-Omega. Kurz podrobně pokrývá třídění, vyhledávání, rekurzi, backtracking a strategie rozděl a panuj. Budete implementovat algoritmy nejkratší cesty a minimální kostry na ohodnocených grafech. Součástí jsou také techniky dynamického programování, hladové algoritmy a pokročilé struktury jako segmentové stromy a trie. Na konci kurzu budete rychle rozpoznávat vzory problémů a pod tlakem psát optimalizovaná řešení.
Jak studujete v praxi Kurz datových struktur a algoritmů
Jak procvičujete Kurz datových struktur a algoritmů
Pro vás, kteří jste firma a chcete školit svůj tým
V Dedika pro firmy je kurz doplněn o cvičení a příklady přímo z vašeho podnikání a přizpůsoben tak, jak vaše firma potřebuje.
Obsah kurzu
8 Kapitoly • 41 LekceDélka mezi 4 a 360 hodinami (rozhodujete vy)
Kapitola 1SkrýtSkrýt detailyZobrazit detailyZáklady datových struktur
Základy datových struktur
Lekce 1 • Hašovací tabulky a základy hašování
Představuje ukládání klíč-hodnota pomocí hašovacích funkcí a polí přihrádek. Připravuje studenty na řešení kolizí a analýzu výkonu v průměrném případě.
Lekce 2 • Pole a dynamická pole
Představuje souvislé ukládání do paměti a přístup založený na indexech. Propojuje statická pole se strategiemi dynamické změny velikosti používanými v reálných implementacích.
Lekce 3 • Spojové seznamy a řetězce ukazatelů
Seznamuje s ukládáním založeným na uzlech s využitím ukazatelů nebo referencí. Porovnává spojové seznamy s poli, aby objasnil kompromisy při vkládání a procházení.
Lekce 4 • Paměť, proměnné a datové typy
Probírá, jak jsou data uložena v paměti a jak se liší primitivní typy. Vytváří mentální model potřebný pro veškerou následnou analýzu struktur.
Lekce 5 • Zásobníky a fronty
Definuje přístupové vzory LIFO a FIFO a jejich implementace. Zakládá abstraktní chování na realizacích založených na poli a spojovém seznamu.
Kapitola 2SkrýtSkrýt detailyZobrazit detailyAnalýza algoritmů a složitost
Analýza algoritmů a složitost
Lekce 1 • Techniky empirického benchmarkingu
Propojuje teoretickou analýzu s měřenými experimenty běhu. Studenti navrhují kontrolované benchmarky k ověření nebo zpochybnění teoretických předpovědí.
Lekce 2 • Prostorová složitost a kompromisy
Analyzuje využití pomocného prostoru spolu s časovými náklady. Zdůrazňuje klasické časoprostorové kompromisy, které řídí praktický výběr algoritmu.
Lekce 3 • Rekurentní vztahy
Představuje rekurence jako nástroj pro analýzu rekurzivních algoritmů. Probírá Master Theorem a substituční metody pro jejich řešení.
Lekce 4 • Big-O, Big-Theta a Big-Omega
Definuje asymptotické notace a jejich matematický význam. Poskytuje slovník používaný v celém kurzu pro porovnávání výkonu algoritmů.
Lekce 5 • Analýza časové složitosti
Učí počítání kroků a analýzu nejhoršího, průměrného a nejlepšího případu. Propojuje struktury cyklů a rekurzi s jejich odpovídajícími třídami složitosti.
Kapitola 3SkrýtSkrýt detailyZobrazit detailyTřídicí algoritmy
Třídicí algoritmy
Lekce 1 • Elementární porovnávací třídění
Probírá bublinkové třídění, třídění výběrem a vkládáním s úplnou analýzou složitosti. Vytváří základní intuici před zavedením efektivnějších přístupů.
Lekce 2 • Třídění rozděl a panuj
Učí merge sort a quicksort pomocí rekurzivního rozkladu. Propojuje analýzu rekurzí z kapitoly 2 se skutečným výkonem třídění.
Lekce 3 • Výběr třídicího algoritmu
Syntetizuje veškeré znalosti o třídění do rozhodovacího rámce. Studenti přiřazují volbu algoritmu k velikosti vstupu, distribuci dat a paměťovým omezením.
Lekce 4 • Třídicí algoritmy s lineárním časem
Představuje counting sort, radix sort a bucket sort jako neporovnávací metody. Objasňuje podmínky, za kterých je dosažitelný lineární čas.
Lekce 5 • Heap sort a prioritní fronty
Představuje strukturu binární haldy a její použití při třídění. Propojuje operace s haldou s abstrakcí prioritní fronty používanou v pozdějších algoritmech.
Kapitola 4SkrýtSkrýt detailyZobrazit detailyVyhledávání a vzory rekurze
Vyhledávání a vzory rekurze
Lekce 1 • Memoizace a DP shora dolů
Rozšiřuje rekurzi o ukládání výsledků do mezipaměti pro eliminaci redundantních výpočtů. Slouží jako most k následující kapitole o plném dynamickém programování.
Lekce 2 • Lineární a binární vyhledávání
Porovnává sekvenční vyhledávání a vyhledávání založené na dělení na seřazených a neseřazených datech. Stanovuje předpoklady a záruky složitosti každého přístupu.
Lekce 3 • Strategie rozděl a panuj
Formalizuje paradigma rozděl-panuj-sluč nad rámec třídění. Studenti jej aplikují na problémy, jako je maximální podpole a nejbližší dvojice bodů.
Lekce 4 • Techniky backtrackingu
Představuje systematické prohledávání s prořezáváním pomocí backtrackingu. Propojuje rekurzivní stromy volání s problémy splňování omezení a kombinatorickými problémy.
Lekce 5 • Základy rekurze
Definuje základní případy, rekurzivní volání a chování zásobníku volání. Poskytuje konceptuální základ pro nadcházející kapitoly o procházení stromů a rozděl a panuj.
Kapitola 5SkrýtSkrýt detailyZobrazit detailyStromy a binární vyhledávací stromy
Stromy a binární vyhledávací stromy
Lekce 1 • Základy binárních stromů
Definuje terminologii stromů, vztahy mezi uzly a strukturální vlastnosti. Zakládá všechny následující stromové algoritmy na společném slovníku a mentálním modelu.
Lekce 2 • Červeno-černé stromy a B-stromy
Probírá pravidla obarvování červeno-černých stromů a strukturu vícecestných B-stromů. Propojuje je s případy použití v databázovém indexování a souborových systémech.
Lekce 3 • AVL stromy a rotace
Představuje výškově vyvážené AVL stromy a čtyři případy rotací. Studenti implementují samovyvažování pro zaručení operací O(log n).
Lekce 4 • Algoritmy procházení stromů
Probírá inorder, preorder, postorder a procházení po úrovních. Propojuje volbu procházení se specifickými požadavky na výstup a navazujícími algoritmy.
Lekce 5 • Operace binárního vyhledávacího stromu
Implementuje vyhledávání, vkládání a mazání v BST s úplnou analýzou. Zdůrazňuje, jak tvar stromu ovlivňuje výkon a motivuje k vyvažování.
Kapitola 6SkrýtSkrýt detailyZobrazit detailyGrafy: reprezentace a procházení
Grafy: reprezentace a procházení
Lekce 1 • Prohledávání do hloubky (DFS)
Implementuje DFS rekurzivně a iterativně s časy objevení a dokončení. Propojuje DFS s detekcí cyklů, topologickým tříděním a komponentami souvislosti.
Lekce 2 • Topologické třídění
Odvozuje topologické uspořádání z časů dokončení DFS a Kahnova algoritmu. Aplikuje uspořádání na problémy řešení závislostí a plánování úloh.
Lekce 3 • Terminologie a reprezentace grafů
Definuje vrcholy, hrany, orientované vs. neorientované a vážené grafy. Porovnává reprezentace maticí sousednosti a seznamem sousednosti z hlediska prostoru a nákladů na přístup.
Lekce 4 • Prohledávání do šířky (BFS)
Implementuje BFS pomocí fronty a analyzuje jeho složitost O(V+E). Aplikuje BFS na hledání nejkratší cesty v nevážených grafech.
Lekce 5 • Komponenty souvislosti a mosty
Identifikuje silně a slabě souvislé komponenty pomocí algoritmů založených na DFS. Představuje detekci mostů a artikulačních bodů pro analýzu spolehlivosti sítě.
Kapitola 7SkrýtSkrýt detailyZobrazit detailyGrafové algoritmy: nejkratší cesty a MST
Grafové algoritmy: nejkratší cesty a MST
Lekce 1 • Minimální kostry: Kruskal
Vytváří MST hladovým přidáváním hran s minimální váhou pomocí Union-Find. Analyzuje správnost pomocí vlastnosti řezu a vlastnosti cyklu MST.
Lekce 2 • Dijkstrův algoritmus nejkratší cesty
Implementuje Dijkstru pomocí prioritní fronty s min-heap se složitostí O((V+E) log V). Probírá důkaz správnosti pomocí invariantu hladové relaxace.
Lekce 3 • Nejkratší cesty mezi všemi dvojicemi
Řeší nejkratší cesty mezi každou dvojicí vrcholů pomocí Floyda-Warshalla. Analyzuje formulaci dynamického programování O(V³) a rekonstrukci cesty.
Lekce 4 • Minimální kostry: Prim
Rozrůstá MST z počátečního vrcholu pomocí prioritní fronty v Primově algoritmu. Porovnává Prima s Kruskalem podle hustoty grafu a složitosti implementace.
Lekce 5 • Bellman-Ford a záporné váhy
Rozšiřuje nejkratší cestu na grafy se zápornými váhami hran pomocí Bellmana-Forda. Detekuje cykly se zápornou váhou, které činí nejkratší cesty nedefinovanými.
Kapitola 8SkrýtSkrýt detailyZobrazit detailyDynamické programování
Dynamické programování
Lekce 1 • Klasické 1D DP problémy
Řeší Fibonacciho, lezení po schodech a výměnu mincí pomocí 1D DP tabulek. Buduje intuici pro vyplňování tabulek před přechodem k 2D formulacím.
Lekce 2 • DP na stromech a grafech
Aplikuje DP na stromové struktury a DAG pro pokročilé optimalizační problémy. Probírá stromové DP pro průměr, nezávislé množiny a DP na cestách v DAG.
Lekce 3 • Problémy batohu a podmnožin
Řeší 0/1 batoh, neomezený batoh a součet podmnožiny pomocí DP tabulek. Propojuje je s alokací zdrojů a rozhodovacími problémy proveditelnosti.
Lekce 4 • Klasické 2D DP problémy
Rozšiřuje DP na dvourozměrné tabulky pro problémy s řetězci a mřížkami. Probírá editační vzdálenost, LCS a počítání cest v mřížce s úplnými odvozeními rekurencí.
Lekce 5 • Prostorová optimalizace v DP
Snižuje prostor DP tabulky z O(n²) na O(n) nebo O(1) pomocí klouzavých polí. Aplikuje prostorovou optimalizaci na batoh, LCS a editační vzdálenost.
Lekce 6 • Principy DP a identifikace problémů
Definuje optimální podstrukturu a překrývající se podproblémy jako předpoklady DP. Učí systematickou metodu rozpoznávání problémů řešitelných pomocí DP.
Váš platný certifikát o dokončení
Tento kurz je pro vás:
Softwarový vývojář: chce zaplnit mezery, které zůstaly po samostudiu nebo bootcampovém školení.
Student informatiky: potřebuje strukturované procvičování nad rámec samotných přednášek.
Osoba měnící kariéru: přechází do softwarového inženýrství z netechnického profesního prostředí.
Backend inženýr: je připraven optimalizovat systémy, ale chybí mu formální algoritmické základy.
Soutěžní programátor: buduje si spolehlivou sadu nástrojů pro časově omezené řešení problémů.
Datový inženýr: potřebuje silnější algoritmické základy pro návrh efektivních datových pipeline.
Co říkají naši studenti
Vaše lekce jsou perfektní. Koupil jsem si roční balíček a konečně mám možnost sledovat různá témata, která mě zajímají, aniž bych musel měnit platformu... děkuji za vše, co děláte, už jsem vás doporučil dalším lidem...

Líbí se mi, jak jsou lekce přímočaré a jak mohu přepínat mezi kapitolami a přeskakovat obsah, který nepotřebuji.

Líbí se mi obsah a způsob prezentace a přepisu videí, což celý proces zrychluje!

Platforma je rychlá a jednoduchá na používání. Rozmanitost obsahu a doplňková videa velmi pomáhají při učení.

Hlavní školení
Často kladené otázky
Kdo je Dedika?
Je certifikát platný v Česko?
Jsou kurzy zdarma?
Jaká je pracovní zátěž kurzu?
Jak kurzy vypadají?
Jak kurzy fungují?
Jaká je délka kurzů?
Jaká je cena nebo poplatek za kurzy?
Co je EAD nebo online kurz a jak funguje?
PDF kurz




















