Skupina B
1
Správná odpověď macimálně 13 bodů, nesmyslná -4 body
Zadání
Proveďte analýzu třídícího algoritmu BubbleSort daného následujícím pseudokódem.
Pole
Vrací true, pokud jsou všechny prvky unikátní, jinak vrací false
1 0
2
3
4 ;
5
6
7
8
Vaším úkolem provést analýzu algoritmu. Očekávají se odpovědi na následující otázky:
(a) (1 bod) Volba parametru reprezentujícího velikost vstupu.
(b) (1 bod) Nalezení základních operací algoritmu.
(c) (3 body) Je nutné u daného algoritmu rozlišovat nejhorší, průměrný a nejlepší případ? Nebo tyto případy splývají? Na čem závisí rozhodnutí? Poznámka: Pokud by bylo nutné zkoumat více případů,bude stačit, když vypracujete řešení pro nejhorší případ.
(d) (3 body) Sestavení rovnic, vyjadřujících počet základních operací vykonaných algoritmem v závislostina velikosti vstupu.
(e) (3 body) Zjednodušení rovnic sestavených v předcházejícím bodě.
(f) (2 body) Stanovení řádového růstu složitosti algoritmu.
Řešení
(a) n (počet prvnů v poli A)
(b) porovnání dvou prvků
(c) V tomto případě není nutné rozlišovat, protože procházíme vždy všechny okolní prvky pole. Jeho složitost tudíž závisí na velikosti vstupu.
(d)
(e)
(f)
2
Správná odpověď maximálně 5 bodů, nesmyslná -1 bod
Zadání
Je dána následující posloupnost písmen: LHRVNXJDTFBP. Písmena z této posloupnosti byla postupně, v pořadí jak jsou zapsána, vložena do binárního vyhledávacího stromu. Nakreslete výsledný strom. Jen pro připomenutí, abeceda vypadá takto: ABCDEFGHIJKLMNOPQRSTUVWXYZ.
Řešení
3
Správná odpověď maximálně 5 bodů, nesmyslná -2 body
Zadání
Máte dánu funkci . Formálně matematicky dokažte, zda platí nebo
Řešení
,takže
4
Správná odpověď maximálně 5 bodů, nesmyslná -1 bod
Zadání
Máte dán neorientovaný graf, viz obrázek vpravo. Na tento graf aplikujte algoritmus průchodu grafem do šířky. Počáteční vrchol pro průchod grafem je vrchol K. Zapište vrcholy grafu v tom pořadí, jakém je algoritmus průchodu grafem do šířky postupn ě navštívil (prošel, zpracoval,...). Poznámka: Sousední vrcholy k danému vrcholu předávejte k dalšímu zpracování vždy v abecedním pořadí. Předpokládejme například, že algoritmus právě zpracovává vrchol M. A dále předpokládejme, že s tímto vrcholem sousedí vrcholy Q, W a R. Sousední vrcholy předáme k dalšímu zpracování v pořadí Q, R a W.
Řešení
BFS = KFGJABICDLEH
5
Správná odpověď maximálně 3 body, nesmyslná -1 bod
Zadání
Máme dán orientovaný acyklický graf, viz obrázek vpravo. Na tento graf aplikujte algoritmus topologiského třídění. Zapište vrcholy grafu seřazené algoritmem topologického třídění.
Řešení
Postup: vrcholy, do kterých nevedou cesty DGEFABC
6
Správná odpověď maximálně 9 bodů, nesmyslná -3 body
Zadání
Jednou z klasických úloh v informatice je Problém batohu (Knapsack Problem). Vaším úkolem je:
(a) (3 body) nejprve definovat problém samotný, dále
(b) (3 body) vysvětlete řešení tohoto problému pomocí strategie řešení hrubou silou (brute force strategy), a nakonec
(c) (3 body) odhadněte časovou složitost řešení.
Poznámka: V odpovědi se můžete omezit na dvourozměrný prostor.
Řešení
(a) Problém batohu, je optimalizační problém, kde je dán batoh s omezenou kapacitou a soubor předmětů, přičemž každý předmět má svou váhu a hodnotu. Cílem je vybrat takovou kombinaci předmětů, která maximalizuje celkovou hodnotu při splnění omezení nosnosti.
(b) Algoritmus u Brute force postupuje rekurzivně a pro každý předmět má 2 možnosti: buď přidá, nebo ne. Algoritmus projde všechny předměty a vybere optimální kombinaci.
(c) Pomocí Brute force je exponenciální, tedy .