Datové struktury I - cvičení
Tato stránka je věnována cvičení z datových struktur I (NTIN066) k přednášce Martina Mareše.
Cvičení se koná každé pondělí od 10:40 v S8 na Malé Straně, vedeme ho společně s Pavlem Veselým.
Pokud máte nějaký dotaz nebo chcete něco konzultovat, napište mi e-mail na adresu chmel(zavinutá ryba)iuuk.mff.cuni.cz
.
Účast na cvičení je dobrovolná. Budeme rozebírat řešení domácích úkolů z předchozího týdne, otázky k tématům z přednášky a pokud zbyde čas, budeme řešit teoretické úlohy pro lepší porozumění.
Podmínky získání zápočtu
Body budou udělovány za řešení domácích úkolů.
Pro zápočet je potřeba získat alespoň 90 bodů, přičemž celkem bude možné získat alespoň 130 bodů.
Domácí úkoly
Přesná pravidla naleznete zde (pozor, oproti loňsku se liší počtem zadaných úloh a bodů potřebných na zápočet).
Krátká verze: po téměř každém cvičení bude zadán jeden domácí úkol, celkem garantujeme, že bude alespoň osm programovacích (implementačních) úkolů po 10 bodech, a alespoň čtyři experimentální úlohy po 15 bodech. Na řešení každého úkolu budou dva týdny a všechny úkoly se odevzdávají výhradně přes ReCodEx. Zadání můžete nalézt na Gitlabu KAMu zde.
Specialitou pro tohle cvičení je, že úkoly budeme opravovat s Pavlem Veselým napůl (totéž platí pro cvičení od 9:00, které vede Pavel Veselý samostatně).
Co jsme dělali
Datum | Obsah |
---|---|
2. 10. 2023 | Úvod, opakování, Dijkstra a haldy (s Jiřím Finkem). Začali jste s úvodem do předmětu a pravidly zápočtu. Podívali jste se na Dijkstrův algoritmus a haldy, na konci jste se ještě kouknuli na vyvážení binárního vyhledávacího stromu v lineárním čase. |
9. 10. 2023 | Amortizace (s Pavlem Veselým). Úlohy na cvičení. Prvně jste zadali úkol |
16. 10. 2023 | Úvod do splay stromů (s Jiřím Finkem). Shrnutí splay stromů Ondry Mičky, vizualizace. Zadali jste si úkol |
23. 10. 2023 | Pokračování splay stromů (s Pavlem Veselým). Úlohy na cvičení. Zadali jste si úkol Potom jste řešili úlohy, na tabuli jsem ukázal řešení prvních pěti úloh (úlohy 4 a 5 spíše zběžně jen s popisem). |
30. 10. 2023 | (a,b)-stromy. Úlohy na cvičení. Vizualizace (a,b)-stromů, řešení úloh ze cvik. Zadali jsme úkol |
6. 11. 2023 | Cache-oblivious a cache-aware algoritmy. Úlohy na cvičení. Řešení úloh ze cvik. Zadali jsme úkol |
13. 11. 2023 | Cache-oblivious algoritmy, hlavně pro matice. Úlohy na cvičení. Zadali jsme úkol |
20. 11. 2023 | Úvod do hashování, systémů a vlastností hashovacích funkcí, opakování pravděpodobnosti. Úlohy na cvičení. Řešení úloh ze cvik. Zadali jsme úkol |
27. 11. 2023 | Hashovací systémy, tabulkové a kukaččí hashování. Úlohy na cvičení. Řešení úloh ze cvik. Zadali jsme úkol |
4. 12. 2023 | Pokračování hashování. Úlohy na cvičení. Řešení úloh ze cvik. Zadali jsme úkol |
11. 12. 2023 | Geometrické datové struktury. Úlohy na cvičení. Řešení úloh ze cvik. Zadali jsme úkol |
18. 12. 2023 | Sufixové a LCP pole. Úlohy na cvičení. Řešení úloh ze cvik. Zadali jsme úkoly |
8. 1. 2024 | Paralelní datové struktury a jiné druhy algoritmů. Úlohy na cvičení. Řešení úloh ze cvik. Podívali jsme se na paralelní datové struktury, a po zbytek cvičení jsme si pak zmiňovali jiné než standardní druhy algoritmů. |
Zajímavé odkazy
- Lecture notes on data structures Martina Mareše
- Zadání domácích úkolů
- ReCodEx