This is an old revision of the document!
TEMA 1
Responsabili tema
: Peticila Alexandru, Peticila Constantin
- I. (0.5 x 6 = 3p) Pentru fiecare din urmatoarele recurente aplicati teorema Master (sau argumentati de ce nu poate fi aplicata, daca este cazul):
- $ T(n) = 4T(\frac{n}{2}) + n^{2.5}$
- $ T(n) = 4T(\frac{n}{2}) + n^2 log(n)$
- $ T(n) = T(\sqrt{n}) + \Theta(log( log( n)))$
- $ T(n) = 3T(\frac{n}{3}) + \frac{n}{log (n)}$
- $ T(n) = T(\frac{n}{2}) + n(2 - cos n)$
- $ T(n) = 16T(\frac{n}{4}) + n!$
- II. (1p) Determinati $ f(n)$ astfel incat $ T(n) = \theta(f(n))$ :
- $ T(n) = \frac{1}{4}T(\frac{n}{4}) + \frac{3}{4}T(\frac{3n}{4}) + 1$
- III. (1p) Rezolvati urmatoarea recurenta, presupunand ca n este o putere a lui 2:
- $ T(n) = \displaystyle\sum_{i=1}^{log_2n} T(\frac{n}{2^i}) + n$
- IV. (2p) Pentru inmulturea matricelor Matei foloseste in acest moment un algoritm cu recurenta urmatoare: $ T(n) = 7T(n/2) + n^2$ .
El nu este multumit de complexitatea acestui algoritm si doreste sa realizeze un algoritm asimptotic mai rapid.
Acesta s-a gandit sa incerce un algoritm care sa imparta fiecare matrice in bucati de dimensiune n/4*n/4.
Care este numarul maxim de subprobleme pe care algorimul sau poate sa il creeze astfel incat sa fie asimptotic mai rapid decat algoritmul cel vechi?
Nota
: Pasii de divide si combina au impreuna complexitatea de Θ(n^2 ).
- V. (2p) Analizati complexitatea urmatorului algoritm,
private static Integer recursiveMethod(Integer length) { if (length > 0) { Integer index = random(length - 1); return recursiveMethod(index) + recursiveMethod(length - 1 - index); } else { return 1; } }
PRECIZARI
- Tema va fi redactata individual.
- Tema va fi predata la cursul din data de 23 noiembrie 2018.
- Tema valoreaza 1 punct din nota finala.