[[https://www.fel.cvut.cz/cz/education/rozvrhy-ng.B171/public/cz/predmety/46/82/p4682306.html|Rozvrh na FEL]] [[https://www.fel.cvut.cz/cz/education/rozvrhy-ng.B171/public/cz/paralelky/P46/82/par4682306.1.html|Posluchači ALG]] [[https://cw.felk.cvut.cz/brute/|Odevzdávací systém BRUTE]] [[https://cw.felk.cvut.cz/forum/forum-1427.html|Diskusní fórum]] ====== ALG - Literatura a Web ====== ===== Literatura ===== **PAPÍR** [**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. ''\\ [**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. ''\\ [**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]] \\ ''Oblíbená 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. Jedna z nejsolidnějších českých publikací v tomto oboru, kompaktní, cenově dostupná, pokud je vyprodána, bývá k dispozici v knihovnách. '' \\ [**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. ''\\ ** WEB ** [**MV-PDF**] Martin Mareš, Tomáš Valla: Průvodce labyrintem algoritmů, CZ.NIC, 2017, [[ http://pruvodce.ucw.cz/|link]].\\ ''Kompletní elektronická verze [**MV**]''\\ [**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://beust.com/algorithms.pdf | zde. ]]''\\ [**ZGA**] Jakub Černý:[[http://kam.mff.cuni.cz/~kuba/ka/| 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. Spolu s [**APT**] představuje výborný úvod do problematiky v češtině, v přítažlivosti a názornosti výkladu je mnohde daleko předbíhá. 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 \\