Vyberte svůj jazyk
Kurz datových struktur a algoritmů
Více než 2 miliony studentů po celém světě

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.

Dedika pro firmy

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.

Klikněte zde

Obsah kurzu

8 Kapitoly • 41 LekceDélka mezi 4 a 360 hodinami (rozhodujete vy)

Kapitola 1Zobrazit detaily

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 2Zobrazit detaily

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 3Zobrazit detaily

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 4Zobrazit detaily

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 5Zobrazit detaily

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 6Zobrazit detaily

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 7Zobrazit detaily

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 8Zobrazit detaily

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.

Certifikace

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...
Giulio Carlo
Giulio CarloStudent digitálního marketingu
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.
Mariana Ferres
Mariana FerresStudentka fotografie
Líbí se mi obsah a způsob prezentace a přepisu videí, což celý proces zrychluje!
Luciana Alvarenga
Luciana AlvarengaStudentka nail designu
Platforma je rychlá a jednoduchá na používání. Rozmanitost obsahu a doplňková videa velmi pomáhají při učení.
André Felipe
André FelipeStudent prompt engineeringu

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