Algoritmy a datové struktury II (jaro 2016)

Sady problémů


Termíny pro odevzdání sad jsou

2.3.2016 - v zadání Sady 1 byl překlep, odkaz vede na  opravené zadání.
1. sada (110 bodů)     21. 3. 2016 15:55
 

2. sada (130 bodů)     25. 4. 2016 15:55

 3. sada (100 bodů)      13131316. 5. 2016 15:55

Řešení můžete odevzdat na sekretariátě kateder, místnost B407 (osobně paní sekretářce), anebo před začátkem přednášky.
Řešení problémů musejí být vysázena, každý příklad na zvláštním papíře (každý příklad se opravuje samostatně, proto je důležité nepsat  na jeden papír řešení různých příkladů). Nezapomeňte uvést kód předmětu, jméno řešitele(ů), označení sady a příkladu.

Svoje řešení odevzdávejte, prosím, kromě papírové formy (která je povinná) i elektronicky do odevzdávárny. Papírové řešení si po opravení příkladů můžete vyzvednout  na demostračním cvičení, budete v něm mít zapsané komentáře od opravujícíhoi. Elektronická verze slouží pro archivaci a  jako záloha pro případ, že se papírové řešení zatoulá (ztratí). Děkuji za pochopení.

Implementaci určeného algoritmu (programy) odevzdávejte do samostatné odevzdávárny. Akceptujeme řešení v Javě a C++.  Podmínkou přiznání bodů za korektní implementaci je odevzdání správného řešení příkladu.


U každé sady se musíte rozhodnout, zda budete celou sadu řešit samostatně nebo ve dvojici.

V případě, že sadu řešíte samostatně, jsou pro Vás povinné pouze příklady označené v zadání písmenem S.

V případě, že sadu řešíte ve dvojici, jsou pro Vás povinné všechny příklady v zadání. Odevzdáte jenom jedno řešení a body získají oba spoluřešitelé.

Bodové hodnocení příkladů je v obou případech různé, přesné informace jsou uvedeny v zadání. Vždy platí, že maximální počet bodů, které lze získat za samostatné řešení příkladů označených S, je stejný jako za společné řešení příkladů všech. 

Spolupráce většího počtu studentů není povolena. Případy nedovolené spolupráce budou postoupeny disciplinární komisi FI a studenti budou hodnoceni známkou nevyhověl (F).



Tipy pro psaní řešení: Typicky je problém formulován jako Navrhněte efektivní algoritmus pro ...
Vaše řešení by mělo obsahovat

  1. Jasný popis algoritmu (pseudokód anebo matematicky přesná čeština). Můžete použít algoritmy, které byly diskutovány na přednášce jako podprogramy, musíte ale jednoznačně specifikovat jejich vstup a výstup. Váš popis musí byt jednoznačný tak, aby osoba znalá programování dokázala na základě Vašeho popisu jednoznačně algoritmus naprogramovat.
  2. Nepište kód algoritmu v žádném programovacím jazyce.
  3. Dokažte, že Váš algoritmus je korektní. Algoritmus bez řádného zdůvodnění nemůže být hodnocen plným počtem bodů.
  4. Analyzujte složitost Vašeho algoritmu (krok po kroku). Složitost vyjádřete v O-notaci.

Řešení příkladů budou diskutována na demonstračních cvičeních, využijte je! Návrh algoritmů se dá naučit jedině navrhováním algoritmů:-)



Pro dotazy a diskusi k zadaným příkladům využívejte, prosím, diskusní fórum předmětu v ISu.

Následující