od lukas.hermann » 24. 5. 2007 20:11
Příklad A1 (5 bodů): Definujte (a,b)-strom a dokažte, že má hloubku O(log n).
Příklad A2 (5 bodů): Popište algoritmus pro hledání k-tého nejmenšího prvku v lineárním čase. Dokažte, že funguje, a rozeberte časovou a paměťovou složitost.
Příklad B1 (5 bodů): Je dán neorientovaný graf s hranami ohodnocenými přirozenými čísly 1, 2,..., K. Navrhněte co nejefektivnější algoritmus pro nalezení minimální kostry takového grafu.
Příklad B2 (5 bodů): Je dána posloupnost reálných čísel a1, a2,..., an. Navrhněte co nejefektivnější algoritmus, který spočítá, kolik má tato posloupnost inverzí, čili kolik existuje dvojic (i, j) takových, že i<j a ai>aj.
Příklad C (5 bodů, bonus): Fibonacciho číselná soustava funguje tak, že čísla zapisujeme pomocí nul a jedniček a zápis <cn...c2> odpovídá číslu Suma(ci×Fi), kde Fi je i-té Fibonacciho číslo. Zápisu, v němž se nevyskytují dvě jedničky za sebou, budeme říkat hezký. Platí, že každé přirozené číslo má právě jeden hezký zápis. Vymyslete algoritmus, který v lepším než kvadratickém čase sečte dvě čísla zadaná hezkými Fibonacciho zápisy a vydá hezký zápis výsledku.
[b]Příklad A1 (5 bodů):[/b] Definujte (a,b)-strom a dokažte, že má hloubku O(log n).
[b]Příklad A2 (5 bodů):[/b] Popište algoritmus pro hledání k-tého nejmenšího prvku v lineárním čase. Dokažte, že funguje, a rozeberte časovou a paměťovou složitost.
[b]Příklad B1 (5 bodů):[/b] Je dán neorientovaný graf s hranami ohodnocenými přirozenými čísly 1, 2,..., K. Navrhněte co nejefektivnější algoritmus pro nalezení minimální kostry takového grafu.
[b]Příklad B2 (5 bodů):[/b] Je dána posloupnost reálných čísel a1, a2,..., an. Navrhněte co nejefektivnější algoritmus, který spočítá, kolik má tato posloupnost inverzí, čili kolik existuje dvojic (i, j) takových, že i<j a ai>aj.
[b]Příklad C (5 bodů, bonus):[/b] Fibonacciho číselná soustava funguje tak, že čísla zapisujeme pomocí nul a jedniček a zápis <cn...c2> odpovídá číslu Suma(ci×Fi), kde Fi je i-té Fibonacciho číslo. Zápisu, v němž se nevyskytují dvě jedničky za sebou, budeme říkat hezký. Platí, že každé přirozené číslo má právě jeden hezký zápis. Vymyslete algoritmus, který v lepším než kvadratickém čase sečte dvě čísla zadaná hezkými Fibonacciho zápisy a vydá hezký zápis výsledku.