[[https://www.fel.cvut.cz/cz/education/rozvrhy-ng.B162/public/cz/predmety/12/57/p12579904.html|Rozvrh na FEL]] [[https://www.fel.cvut.cz/cz/education/rozvrhy-ng.B162/public/cz/paralelky/P12/57/par12579904.1.html|Posluchači ALG]] [[https://cw.felk.cvut.cz/brute/|Odevzdávací systém BRUTE]] [[https://cw.felk.cvut.cz/forum/forum-1389.html|Diskusní fórum]] ====== Odkazy ====== ===== Literatura ===== **PAPÍR** [**MV-PDF**] Martin Mareš, Tomáš Valla: Průvodce labyrintem algoritmů, CZ.NIC, 2017, [[ http://pruvodce.ucw.cz/|link]].\\ ''Kompletní elektronická verze [**MV**] http://pruvodce.ucw.cz/''\\ [**CLRS**] T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein: Introduction to Algorithms, 3rd ed., MIT Press, 2009, [[http://en.wikipedia.org/wiki/Introduction_to_Algorithms| link]] \\ ''Jedna ze standardních světových učebnic oboru, obsažná (1200+ stran) a důkladná. Zajemci o vědeckotechnické programování poslouží zároveň jako výborná referenční příručka. ''\\ [**AC**] Robert Sedgewick: Algoritmy v C, části 1-4, SoftPress, Praha, 2003 \\ ''Překlad světoznámé učebnice obsahuje detailní poučení o řazení a vyhledávání, výborná kniha pro úvod do hlubšího pohledu na problematiku, 688 stran, původní cena cca 700 Kč, nyní rozebrána, knihovna FEL má asi 10 výtisku, jiné knihovny méně, ale mají. V originálu existuje ve variantě pro C++ a Javu. ''\\ [**APT**] Pavel Töpfer: Algoritmy a programovací techniky, Prometheus Praha 1995, 2. vydání 2007, [[http://neoluxor.cz/ucebnice/algoritmy-a-programovaci-techniky--35715/| link]] \\ ''Klasická ale dnes již zastíněná publikací [**MV**] učebnice programování, představuje nejdůležitější datové struktury a jejich použití, základní algoritmy řazení, vyhledávání a manipulace s grafy. Pozor, používá programovací jazyk Pascal.'' \\ ** WEB ** [**MV**] Martin Mareš, Tomáš Valla: Průvodce labyrintem algoritmů, CZ.NIC, 2017, [[https://knihy.nic.cz/|link]].\\ ''Nejobsažnější a nejpropracovanější česká kniha v oboru, obsahuje algoritmy základní i pokročilé, přehledný výklad, autoři léta učí algoritmy na MFF UK a FIT ČVUT. ''\\ [**DPV**] Dasgupta, Papadimitriou, Vazirani: [[http://beust.com/algorithms.pdf|Algorithms]] (Amazon: [[http://www.amazon.com/Algorithms-Sanjoy-Dasgupta/dp/0073523402#customerReviews| recenze čtenářů]])\\ ''Velmi solidní text pro úvod do praktické informatiky. Příklady, ukázky, pseudokódy, rozbory. \\ Ve formátu pdf: [[http://algorithmics.lsi.upc.edu/docs/Dasgupta-Papadimitriou-Vazirani.pdf | zde. ]]''\\ [**ZGA**] Jakub Černý:[[http://atrey.karlin.mff.cuni.cz/~morf/vyuka/tgh/materialy/Cerny:základní%20grafové%20algoritmy.pdf| Základní grafové algoritmy]], KAM MFF, 2010, online publikace.\\ ''Kniha obsahuje také základní poučení o algoritmech vůbec, složitost, rozděl/panuj. Názorný úvod do problematiky v češtině, množství zajímavých příkladů. Doporučujeme.'' \\ [**PK**] Programátorské kuchařky z MFF UK[[http://ksp.mff.cuni.cz/study/cooks/cookbook.html| kuchařky.]] \\ ''Web pro pokročilejší středoškoláky, podobné kvality jako [**ZGA**], obsáhlejší.'' \\ [**TC**] Server [[http://www.topcoder.com/|Topcoder]] obsahuje volně vybrané [[https://www.topcoder.com/community/data-science/data-science-tutorials/| základní algoritmické a implementační přehledy]].\\ [**AN**] Andrey Naumenko: [[https://sites.google.com/site/indy256/algo|Kódy algoritmů]]\\ \\ ===== Speciálně ===== **Mnoho datových struktur interaktivně** \\ * [[https://www.cs.usfca.edu/~galles/visualization/Algorithms.html| Snadná vizualizace ]] **Dynamické programování**\\ * DP v kuchařce [PK]: [[https://ksp.mff.cuni.cz/tasks/24/cook2.html| html výklad I ]], [[http://ksp.mff.cuni.cz/tasks/17/cook5.html| html výklad II]], [[http://ksp.mff.cuni.cz/study/cooks/cookbook-chapters/09-dynamicke-programovani.pdf| přibližně shrnuto v pdf.]] * Kap. 15 v [CLRS]: (viz výše). * Kap. 6 v [DPV]: [[http://www.cs.berkeley.edu/~vazirani/algorithms/chap6.pdf| kap. 6]] * Kap. 14 v [APT]: (viz výše). * Násobení matic [[https://edux.fit.cvut.cz/oppa/BI-EFA/prednasky/EFA2010-11.pdf|v přednášce prof. Tvrdíka]] * Násobení matic [[http://kam.mff.cuni.cz/~kuba/vyuka/textiky/matrix_mul.ps| v článku Jakuba Černého]] * Násobení matic [[https://www.cse.ust.hk/~dekai/271/notes/L12/L12.pdf| v přehledu profesora Wu]] * Násobení matic [[http://www.personal.kent.edu/~rmuhamma/Algorithms/MyAlgorithms/Dynamic/chainMatrixMult.htm|podle [CLRS] ]] od prof. Rashida Bin Muhammada z Kentu. * [[http://people.cs.clemson.edu/~bcdean/dp_practice/|Další příklady]] od prof. Briana Deana z Jižní Karolíny. \\ {{:courses:a4b33alg:daglongest.ppt| nejdelsi cesta v DAG}} ( {{:courses:a4b33alg:daglongest.pdf| pdf}} ) ===== Úlohy ===== Sběhlost a přehled v používání základních i pokročilejších algoritmů nabýváme jen postupnou praxí při řešení úloh. **S papírem a tužkou** \\ * [[http://larc.unt.edu/ian/books/free/poa.pdf| Parberry, Gasarch: Problems on Algorithms]] **S klávesnicí a monitorem** \\ - Korespondenční semináře z programování (KSP), [[http://ksp.mff.cuni.cz/ |MFF UK Praha]], [[http://www.ksp.sk/ksp2.0/news/|MFF UK Bratislava]], [[http://ganymed.math.muni.cz/ks/|MU Brno]]. \\ - Úlohy ze [[http://mo.mff.cuni.cz/p/|středoškolských programovacích olympiád]]. \\ - Vyhodnocovací systém na University of Valladolid: [[http://uva.onlinejudge.org/| UVA Online Judge]] \\ Pomůcka: UVA Toolkit [[http://uvatoolkit.com/problemssolve.php|Tématické členění vybraných úloh z UVA]].\\ - [[http://www.spoj.com/|Sphere Online Judge]] Přes 13000 úloh nejrůznějších úrovní, také s částečným výběrem úloh [[http://problemclassifier.appspot.com/|podle témat]].\\ - Steven S. Skiena, Miguel A. Revilla: [[http://acm.cs.buap.mx/downloads/Programming_Challenges.pdf|Programming Challenges]] -- vyborný úvod a komentář k vybraným úlohám z UVA Online Judge.\\ - Soutěžní stránky ACM na FEL: [[http://contest.felk.cvut.cz/|ACM International Collegiate Programming Contest]]. \\ - [[http://projecteuler.net/problems| Project Euler]] Proslulý zdroj matematičtěji zaměřených úloh, cca první stovku znich lze ale doporučit každému zájemci o efektivní programován.i \\