Dulezite oznameni
Pořadí na zkoušky
Horní odhad průměrné hloubky průměrného binárního vyhledávacího stromu - začátek
Analýza průměrného chování quicksortu.
Radix sort.
Hašování - základní techniky.
Dijkstrův algoritmus (nedokončeno).
1. Binární vyhledávací stromy, AVL stromy a červeno-černé stromy: je třeba umět definici; znát algoritmy pro vkládání, vyhledávání, minimum a maximum pro všechny tři typy, vynechávání pro BVS a AVL a mít představu o ČČ vynechávání; umět dokázat horní odhad hloubky stromu pro AVL a ČČ; znát základní operace, používané u vyvážených stromů (rotace, u ČČ také posuny černé barvy) a vědět řádově, kolikrát se mohou při jednotlivých operacích použít (řádově znamená jestli v nejhorším případě jednou, dvakrát, nebo podél celé nějaké cesty ve stromu nebo třeba i úplně všude ve stromu).
2. Horní odhad pro průměrnou hloubku průměrného (průměr přes všechny stromy) binárního vyhledávacího stromu a pro průměrný počet porovnání (průměrný přes všechny permutace vstupní posloupnosti) provedených Quicksortem. Případná klopýtnutí ve formálních úpravách základní rovnosti budou posuzovány shovívavě (i když na "výborně" by být neměly), ale je nutné umět vysvětlit, jak jsme se k záklední nerovnosti dostali.
3. B-stromy: popis stromu a algoritmů pro vkládání, vynechávání, vyhledávání, minimum a maximuma znát základní operace, kteé jsou při tom využívány. Otázka spíš pro případ rozhodování mezi dvěma stupni klasifikace než jako samostatná otázka.
4. Dolní odhady pro počet porovnání provedených porovnávacím algoritmem pro třídění (nejhorší a především průměrný případ). Radix sort.
5. Hašování - základní schéma, dobře znát abstraktní definici i konkrétní provedení universálního hašování a myšlenku konstrukce perfektního hašování pomocí dvojstupňového použití universálního hašování.
6. Prohledávání grafu - obecné schéma, prohledávání do šířky a do hloubky, jejich základní vlastnosti a použití. Nebude používáno jako samostatná otázka.
7. Hledání nejkratších cest algoritmus Dijkstrův, algoritmus Bellmana a Forda a hledání v acyklických orientovaných grafech na základě topologického uspořádání. Důraz kladen na důkaz správnosti a výpočetní složitosti.
8. Hledání minimální kostry grafu
9. Podle toho, kolik bude odpřednášeno, ještě možná další otázka.
1. Spusťte aplikaci "Configure Java". Já jsem to zkoušel na Windows 10, kde jsem z wokna vlevo dole otevřel nabídku, zvolil "Všechny aplikace", kliknul na "Java" a tam už se objevila volba aplikace Configure Java
2. V Configure Java se vybere panel Security, v něm se klikne na Edit Site List a do seznamu, který se objeví, se přidá adresa http://www.algovision.org/Algovision/Algovision.java a všechno se odklikuje.
3. Pak by už Algovize měla jít spustit ze stránky http://www.algovision.org/Algovision/algovision.java
Je tam ale vložena hodně stará verze, která dobře nefunguje, zjistil jsem, že neumí z binárního vyhledávacího stromu vynechat číslo z vrcholu se dvěma následníky a nefunguje tam rotace (!). Zkusím tam dát lepší verzi.
Zkuste tento postup a napište mi v každém případě, ať už se vám to povedlo či nepovedlo.
A lower bound for comparison sorting (average case) [.ps 44 kB] [.pdf 50 kB]
Logaritmic bound for universal hashing [.pdf 64 kB]
Universal hashing [.ps 41 kB] [.pdf 48 kB]
Dijkstra algorithm [.ps 173 kB] [.pdf 71 kB]