Sunteți pe pagina 1din 2

Seminar 2

Problemă rezolvată de un algoritm.


Complexitatea algoritmilor.
S, tefan Ciobâcă, Dorel Lucanu
Universitatea “Alexandru Ioan Cuza”, Ias, i
Săptămâna 22 Februarie - 26 Februarie 2016

1. Scriet, i trei algoritmi (Euclid prin scăderi repetate, Euclid prin ı̂mpărt, iri
repetate, căutare explicită) pentru următoarea problemă:
Input: două numere naturele a, b ∈ N cu proprietatea că a + b 6= 0;
Output: cel mai mare divizor comun al numerelor a, b.
2. Dat, i exemple de câteva instant, e ale problemei de mai sus s, i de răspunsurile
aferente.

3. Problema de mai sus este aceeas, i cu problema ce urmează?


Input: două numere naturale a, b ∈ N;
Output: “da” s, i cmmdc(a, b), dacă a s, i b au un cel mai mare divizor comun
s, i “nu” altfel.
4. Calculat, i timpul de execut, ie ı̂n cazul cel mai nefavorabil ı̂n modelul uni-
form s, i ı̂n modelul logaritmic pentru algoritmii de mai sus.
5. Enunt, at, i problema celor 8 regine. Dat, i exemplu de instant, a a problemei.
6. Enunt, at, i problema sortării ı̂n ordine crescătoare a unui s, ir de numere
naturale.

7. Scriet, i ı̂n Alk algoritmii bubble-sort, insertion-sort s, i selection sort pentru


problema de mai sus.
8. Arătat, i că algoritmii de mai sus rezolva ı̂ntr-adevăr problema.
9. Calculat, i timpul de execut, ie ı̂n cazul cel mai nefavorabil ı̂n cele două
modele de calcul pentru algoritmii de sortare de mai sus.
10. Enuntat, i problema satisfiabilităt, ii pentru formule din LP ca pereche Input-
Output.

1
11. Enunt, at, i problema satisfiabilităt, ii pentru formule din LP1 ca pereche Input-
Output.
12. Enunt, at, i problema opririi.

13. Gândit, i-vă la trei algoritmi pe care i-at, i ı̂nvăt, at la liceu s, i enunt, at, i ce
probleme rezolva algoritmii.
14. Care dintre problemele discutate la acest seminar sunt probleme de de-
cizie? Care sunt probleme rezolvabile?

15. Enunt, at, i problemele adunării/ı̂nmult, irii a două numere naturale, numere
reprezentate printr-un s, ir de cifre.
16. Scriet, i algoritmi pentru problemele de mai sus.
17. Calculat, i timpul de calcul ı̂n cazul ce mai nefavorabil pentru cei doi algo-
ritmi de mai sus (ı̂n funct, ie de dimensiunea datelor de intrare).

18. Problemă mai grea: scriet, i algoritmul lui Karatsuba pentru ı̂nmult, irea a
două numere naturale (de complexitate O(nlog2 (3) )).
19. Problemă s, i mai grea: scriet, i un algoritm ı̂n timp O(nlog(n)) pentru
ı̂nmult, irea a două numere naturale folosind transformarea Fourier rapidă.
20. Găsit, i solut, ii cât mai eficiente din punct de vedere al timpului de cal-
cul s, i al necesarului de memorie pentru următoare problemă: dându-se
un număr natural n s, i n − 1 numere distincte ı̂ntre 1 s, i n să se deter-
mine numărul lipsă. Nu uitat, i să formalizat, i problema ca pereche Input-
Output. Arătat, i că algoritmul (sau algoritmii) propus, i rezolvă ı̂ntr-adevăr
problema; calculat, i timpul de calcul s, i necesarul de memorie ı̂n cele două
modele.
21. Acelas, i exercit, iu ca mai sus, dar de data aceasta un număr apare de două
ori s, i un număr lipses, te (ı̂nainte să scriet, i algoritmul formalizat, i problema).

22. Formalizat, i următoarea problemă s, i scriet, i un algoritm pentru ea: să se


scrie un natural n ca sumă de numere naturale consecutive ı̂n toate vari-
antele posibile.
23. De ce nu “citim” datele de intrare de la tastatură (sau dintr-un fis, ier) s, i
de ce nu “scriem” rezultatul pe ecran (sau ı̂ntr-un fis, ier) la acest curs?

24. Temă pentru punctul bonus: implementat, i ı̂n Alk algoritmul bubble-sort
s, i rulat, i algoritmul pe un s, ir de 5 până la 10 numere la alegere. Predat, i
un screenshot cu rezultatul execut, iei la următorul seminar.

S-ar putea să vă placă și