Sunteți pe pagina 1din 2

AA - Laborator 2

Exercitiul 1. Se ca un vector cu n numere intregi. Sa se parcurga vectorul pana la intalnirea primului


numar negativ si sa se afiseze numere pare. Se considera ca exista un numar negativ in vector.
Rezolvare
alg(v, n)
i=1
while(v[i] 0)
if (v[i] mod 2 = 0)
print(v[i])
i=i+1

Cost
c1
c2
c3
c4
c5

Repetitii
1
s
s1
t
s1

1. Toate operatiile
T (n) = c1 + s c2 + (s 1) c3 + t c4 + (s 1) c5
1. a) Cazul cel mai favorabil : s = 1, t = 0
T (n) = c1 + c2 = (1)
1. b) Cazul cel mai defavorabil : s = n, t = n 1
T (n) = c1 + n c2 + (n 1) c3 + (n 1) c4 + (n 1) c5 = (c2 + c3 + c4 + c5 ) n + (c1 c3 c4 c5 ) = (n)
1. c) Cazul mediu:
Se poate considera caz mediu orice varianta in caren umarul de operatii este aproximativ media aritmetica dintre numarul de operatii pentru cazul cel mai favorabil si numarul de operatii pentru cazul
cel mai defavorabil. De exemplu: s = (n + 1)/2, t = (n 1)/2 sau s = 2n/3, t = n/3.
Cand este dificil sa alegem cazul mediu, s si t se pot exprima sub forma de medii ponderate ale
valorilor corespunzatoare pentru cazul cel mai favorabil si cazul cel mai defavorabil (se observa ca
(1 h1 ) + h1 = 1):
s = (1 h1 ) 1 + h1 n, h1 (0, 1)
t = (1 h2 ) 0 + h2 (n 1), h2 (0, 1)
T (n) =c1 + ((1 h1 ) 1 + h1 n) c2 + ((1 h1 ) 1 + h1 n 1) c3 + ((1 h2 ) 0 + h2 (n 1)) c4 +
+ ((1 h1 ) 1 + h1 n 1) c5 = . . . = (h1 c2 + h1 c3 + h2 c4 + h1 c5 ) n+
+ (c1 + (1 h1 ) c2 h1 c3 h2 c4 h1 c5 ) = (n)
2. Operatiile critice
2. a) Cazul cel mai favorabil : s = 1, t = 0; operatii critice: 1, 2
T (n) = c1 + c2 = (1)

2. b) Cazul cel mai defavorabil : s = n, t = n 1; operatii critice: 3, 4, 5


T (n) = (n 1) c3 + (n 1) c4 + (n 1) c5 = (c3 + c4 + c5 ) n (c3 + c4 + c5 ) = (n)
2. c) Cazul mediu: operatii critice: 3, 4, 5
Folosim aceeasi idee de la punctul 1. c).
T (n) = ((1 h1 ) 1 + h1 n 1) c3 + ((1 h2 ) 0 + h2 (n 1)) c4 + ((1 h1 ) 1 + h1 n 1) c5 =
. . . = (h1 c3 + h2 c4 + h1 c5 ) n (h1 c3 + h2 c4 + h1 c5 ) = (n)
Exercitiul 2. Aratati ca:
a) n2 n = O(n2 )
b) n2 n 6= o(n2 )
c) n3 n2 = (n3 )
d) f (n) = O(g(n)) g(n) = (f (n))

f (n) = O(g(n))
e) f (n) = (g(n))
f (n) = (g(n))
Rezolvare
a) n2 n = O(n2 ) c R+ , n0 N astfel incat n2 n cn2 , n n0 . Fie c = 1 R+ . Din
n2 n n2 rezulta ca n 0. Prin urmare n0 = 1 N . In concluzie, n2 n = O(n2 ).
n2 n
= 1 6= 0. In concluzie, n2 n 6= o(n2 ).
n
n2

b) lim

c) n3 n2 = (n3 ) c1 , c2 R+ , n0 N astfel incat c1 n3 n3 n2 c2 n3 , n n0 . Fie


c1 = 1/2 si c2 = 1. Se observa ca c1 , c2 R+ .
Din (1/2)n3 n3 n2 rezulta ca 2n2 n3 ; prin urmare n 2.
Din n3 n2 n3 rezulta ca n2 0; prin urmare n 0.
Rezulta ca n0 = 2 N . In concluzie, n3 n2 = (n3 ).
d) f (n) = O(g(n)) c R+ , n0 N astfel incat f (n) cg(n), n n0
c R+ , n0 N astfel incat (1/c)f (n) g(n), n n0
c = 1/c R+ , n0 N astfel incat cf (n) g(n), n n0
c R+ , n0 N astfel incat cf (n) g(n), n n0
g(n) = (f (n)).
e) . f (n) = (g(n)) c1 , c2 R+ , n0 N astfel incat c1 g(n) f (n) c2 g(n), n n0


c1 R+ , n0 N astfel incat c1 g(n) f (n), n n0
f (n) = (g(n))

.
c2 R+ , n0 N astfel incat f (n) c2 g(n), n n0
f (n) = O(g(n))


f (n) = (g(n))
c1 R+ , n01 N astfel incat c1 g(n) f (n), n n01
.

f (n) = O(g(n))
c2 R+ , n02 N astfel incat f (n) c2 g(n), n n02
c1 , c2 R+ , n0 = max(n01 , n02 ) N astfel incat c1 g(n) f (n) c2 g(n), n n0
f (n) = (g(n)).
2

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