Programování 2 - Informatici čt 30.04.2026 út 05.05.2026 Rozděl a Panuj - QuickSort a MergeSort 1. QuickSort - opakování principu algoritmu - trackování algoritmu na příkladu (tabule) - citlovost na výběr pivota, metody výběru pivota (fixní pozice, random pozice, průměr z více pozic) - složitost v nejhorším případě na příkladu MergeSort - opakování principu algoritmu, slévání - trackování algoritmu na příkladu (tabule) - odvození složitosti algoritmu - modifikace mergesotu pro in-place variantu a vliv na složitost - vnější a vnítřní řazení https://cs.wikipedia.org/wiki/%C5%98azen%C3%AD_slu%C4%8Dov%C3%A1n%C3%ADm https://www.geeksforgeeks.org/dsa/quick-sort-algorithm/ https://www.youtube.com/watch?v=kPRA0W1kECg&themeRefresh=1 (čas 0:38) 2. Domácí úkol 20 nejčastějších slov - kde byla chyba v recodexu - code wibing (obecn až příliš .... a čest vyjimkám) - pseudokód, návrh datových struktur a řazení Jak na řazení dict? zmíníme dva způsoby: a) ordered dict; b) transformace na list; a jak pak řadit podle četnosti? https://www.geeksforgeeks.org/python/python-sort-python-dictionaries-by-key-or-value/ jak řadit bez lambda fci?: https://ksvi.mff.cuni.cz/~dingle/2025-6/prog_1/notes_7.html) 3. Jupyter notebook Představení notebooku ./ex/matplotlib_kurz_rozsireny_v02.ipynb Jupyter: https://jupyter.org/ - bloky: a) textový markdown; b) python script Markdown: Značkovací jazyk pro základní formátování textu: https://en.wikipedia.org/wiki/Markdown https://www.markdownguide.org/basic-syntax/ https://www.markdownguide.org/cheat-sheet/ - instalace pluginu ve visual studio code - upravte stáhnutý notebook: --upravte existující kod a spuste ho -- upravte existující text v Markdownu; -- vložte nový textový blok a vložte text; -- vložte nový code blok a napište kód s spuste 4. Prohledávání stavého prostoru - vlastnosti (výhody a nevýhody) DFS a BFS Dopracování - kdo, co nemá hotovo z úkolů: a) Proskákat koněm šachovnici (dfs), b) Nejkratší cesta králem po šachovnici (bfs), c) Sum game (minimax) Ptejte se mě :) Diskutujte spolu v lavici :)