====== Links ====== **Online** [**AL**] Antti Laaksonen: Competitive Programmer’s Handbook [[https://cses.fi/book/book.pdf|Link]]\\ ''Praktická, přehledná publikace s výklady pomocí příkladů, méně teorie, kompaktní, obsažná.''\\ [**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. ''\\ [**ALG**] 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.'' [**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, atd. Představuje výborný úvod do problematiky v češtině, nejspíše nemá konkurenci mezi českými zdroji v přítažlivosti a názornosti výkladu. Obsahuje množství zajímavých a důležitých příkladů.'' \\ [**PK**] Programátorské kuchařky z MFF UK [[http://ksp.mff.cuni.cz/study/cooks/cookbook.html| kuchařky.]]\\ [**PC**] Steven S. Skiena, Miguel A. Revilla: [[http://acm.cs.buap.mx/downloads/Programming_Challenges.pdf]] \\ ''Klasický úvod a komentář ke cca 100 vybraným úlohám z UVA Online Judge, i s nezbytnými teoretickými souvislostmi.''\\ National Institute of Standards and Technology (NIST): [[https://xlinux.nist.gov/dads/|Dictionary of Algorithms and Data Structures]] ==== Tištěné zdroje ==== [**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 [[http://www.informit.com/store/algorithms-in-c-parts-1-4-fundamentals-data-structures-9780201314526|link]]\\ ''Překlad světoznámé učebnice obsahuje detailní poučení o řazení a vyhledávání, vhodná 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. ''\\ [**ACG**] Robert Sedgewick: Algorithms in C Part 5: Graph Algorithms (3rd Edition), Addison-Wesley Professional, 2002 [[http://www.informit.com/store/algorithms-in-c-part-5-graph-algorithms-9780201316636|link]]\\ ''Pokračování [AC](viz výše). Český překlad bohužel dosud neexistuje. Grafove reprezentace, prohledavani grafu, nejkratší cesty, minimální kostry, toky v síti, orientované grafy. Teoretické části lze nalézt přístupně zpracované i jinde (např. [GJA]), tato kniha však, stejně jako [AC], akcentuje také důležité implementační otázky. 528 stran.'' \\ V originálu existují obě knihy prof. Sedgewicka 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]] \\ ''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. Patrně nejlepší česká publikace v tomto oboru, kompaktní, cenově dostupná, pokud je vyprodána, bývá k dispozici v knihovnách. '' \\ [**GJA**] J. Demel: Grafy a jejich aplikace, Praha, Academia 2002 \\ ''Přístupně a bez nadměrné abstrakce podává základní grafové postupy, praktická, názorné příklady, cvičení. '' ==== Kódy na ukázku ==== [[https://github.com/jaehyunp/stanfordacm|Kódy vytvořené na Stanford University]] https://rosettacode.org/wiki/Fast_Fourier_transform#C.2B.2B https://csacademy.com/blog/fast-fourier-transform-and-variations-of-it ==== Zdroje úloh ==== * Archiv úloh z regionálních i světových kol soutěží ACM Programming Contest [[https://icpcarchive.ecs.baylor.edu/|ACM-ICPC Live Archive]] * Soutěžní stránky ACM na FEL: [[http://contest.felk.cvut.cz/|ACM International Collegiate Programming Contest]] * University of Valladolid: [[http://uva.onlinejudge.org/| UVA Online Judge]], UVA Toolkit [[http://uvatoolkit.com/problemssolve.php|Tématické členění vybraných úloh z UVA ]] * SPOJ [[http://www.spoj.com/|Sphere Online Judge]] Přes 13000 úloh všech úrovní, [[http://problemclassifier.appspot.com/|Tématické členění vybraných úloh z SPOJ ]] * [[http://www.codechef.com/|Codechef]] obsahuje k nahlédnutí zdrojové kódy úspěšných řešitelů. * [[http://codeforces.com/|Codeforces]] kromě úloh i soutěže naostro každý týden. * [[https://ipsc.ksp.sk/|The Internet Problem Solving Contest]] * [[http://projecteuler.net/problems| Project Euler]] Proslulý zdroj matematičtěji zaměřených úloh, přinejmenším první stovku z nich lze doporučit každému zájemci o efektivní programováni. * Korespondenční semináře z programování (KSP), [[http://ksp.mff.cuni.cz/ |MFF UK Praha]], [[https://www.ksp.sk/|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 ]]. ==== 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.]] * [[https://cw.fel.cvut.cz/wiki/_media/courses/a4b36acm/2013_ls/dp.pdf|Ukázky klasických úloh]] * S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani: Algorithms, Mcgraw-Hill Higher Education, 2006, Kap. 6 s DP : [[http://www.cs.berkeley.edu/~vazirani/algorithms/chap6.pdf| kap. 6]] ==== Hry ==== **Všeobecné poučení o hrách a Nim-u**\\ [[http://www.math.ucla.edu/~tom/Game_Theory/comb.pdf|Všeobecné poučení o hrách a Nim-u]] \\ [[http://mks.mff.cuni.cz/library/JakHratANeprohratFH/JakHratANeprohratFH.pdf|český výtah z předchozího]] \\ [[http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=algorithmGames | TopCoder - The Basic Introduction into Games]] \\ [[https://www.topcoder.com/community/data-science/data-science-tutorials/algorithm-games/ |TopCoder - Algorithm Games]] \\ [[http://teorie-grafu.cz/zakladni-pojmy/jadro-grafu.php | Jádro grafu]] \\ Kombinatorické hry - krátká ilustrace {{:courses:a4b36acm:combigames.ppt| ppt}} a {{:courses:a4b36acm:combigames.pdf| pdf}} \\ Ukázková úloha [[http://www.codechef.com/problems/BIGPIZA|Socializing Game around Pizza ]] {{:courses:a4b36acm:pizza.pdf| s řešením}} \\ [[http://www.fq.math.ca/Scanned/1-4/whinihan.pdf|Něco o Fibonaci Nim-u]]\\ http://www.spoj.com/problems/SHAKTI/ ==== Animace algoritmů ==== http://www.cs.usfca.edu/~galles/visualization/Algorithms.html ==== Středoškolští ==== https://mam.mff.cuni.cz/ http://promys-europe.org/