Sunteți pe pagina 1din 18

CAPITOLUL 1

ANALIZA STOCHASTIC A ALGORITMILOR


1.1 CONSIDERAII MATEMATICE PRELIMINARE
1.1.1 Funcia caracteristic a unei variabile aleatoare.
Definiia 1.1.1.1. Numim variabil aleatoare (v.a.) complex orice
expresie complex Z = X + iY , unde X i Y sunt variabile aleatoare reale.
O v. a. complex poate fi interpretat, innd seama de reprezentarea
grafic a unui numr complex, ca un punct aleator M(X,Y) n plan.
Definiia 1.1.1.2. Prin definiie, valoarea medie corespunztoare lui Z
este:

M ( Z ) = M ( X ) + iM (Y ).

Fie X o v.a. real avnd funcia de repartiie F(x).


S considerm expresia:

eitX = cos tX + i sin tX , t R


Aceast expresie este o v.a. complex, al crui modul este egal cu 1 i
deci este mrginit. Valoarea medie a acestei v.a. exist i este o funcie
(t ), t R , pe care o vom numi funcie caracteristic a variabilei X.
Dac X este o v.a. discontinu, atunci
(t ) = M ( eitX ) = pr eitX r = pr cos tX r + i pr sin tX r ,
r

iar dac v.a. X are funcia de repartiie F, atunci:

(t ) = eitX dF ( X ).

Dac ( X ) este densitatea de repartiie a v.a. X, atunci:

(t ) = e ( X )dX = (cos t ) ( X )dX + i (sin t ) ( X )dX .


itX

Observaie.
Orice v.a. are ataat o funcie de repartiie F(x) i o funcie caracteristic
(t ) . Calculul direct cu funcia de repartiie prezint dificulti, deoarece aceste
funcii sunt n general discontinue, pe cnd funciile caracteristice sunt continue
fa de t, cu valori complexe.
Proprieti ale funciei caracteristice:
1. (0) = 1;

(t ) 1, t R;
3. (t ) este uniform continu pe R;
2.

4. funcia caracteristic a sumei a dou v.a. independente este egal cu


produsul funciilor caracteristice corespunztoare celor dou
variabile:
h = f + g ; f , g v.a. independente, rezult

h (t ) = M ( eith ) = M ( eit ( f + g ) ) = M ( eitf ) M ( eitg ) ,

deci

h (t ) = f (t ) g (t );
5. ( t ) = (t )
6. fie (t ) funcia caracteristic a repartiiei F(x). Dac x1, x2 sunt
puncte de discontinuitate ale lui F, atunci:

(e
1
F ( x2 ) F ( x1 ) =
lim
2 c c
c

itx1

e itx2 )

it

(t )dt

(teorema de inversiune a funciei caracteristice).


1.1.2 Funcia generatoare

Ori de cte ori dorim s obinem informaii despre o secven de numere


< an >= a0 , a1 ,..., an ,.... putem construi o sum infinit n funcie de un
parametru z:

G ( z ) = a0 + a1 z + a2 z 2 + ... = an z n

(1)

n =0

Apoi, putem ncerca s obinem informaii despre G(z) (funcia


generatoare pentru secvena a0 , a1 ,..., an ,.... ).
n legtur cu seria (1) sunt valabile urmtoarele afirmaii:
i. dac (1) converge pentru o valoare particular z0 , atunci ea este convergent
ii.

pentru toate valorile lui z, cu z < z0 ;


cnd se lucreaz cu funcia generatoare nu trebuie s ne preocupe
convergena seriilor, deoarece se exploareaz doar posibilitile lor de
abordare pentru soluionarea unei probleme.
1.1.2.1 Proprieti
1) Adunarea:
Dac G1 ( z) este funcia generatoare pentru < an > i G2 ( z) pentru < bn > ,

atunci G1 ( z) + G2 ( z) este funcia generatoare pentru


deoarece:
ak z k + bk z k = ( ak + bk ) z k .

k 0

k 0

k 0

< an + bn > ,

2) Deplasarea:

Dac G ( z ) =

a z
n =0

este funcia generatoare pentru a0 , a1 ,..., an ,....


n

atunci z G( z) este funcia generatoare pentru 0,...,0, a0 , a1 ,.... :


n ori

z nG( z) = z n ak z k = 0 + .. + 0 +ak n z k = ak n z k .
k 0

k n

3) nmulirea

Fie G1 ( z ) =

a z ;
k

k 0

k n

G2 ( z ) = bk z k , atunci
k 0

G1 ( z ) G2 ( z ) = a0b0 + (a0b1 + a1b0 ) z + (a0b2 + a1b1 + a2b0 ) z 2 + ...,


deci G1 ( z ) G2 ( z ) este o funcie generatoare pentru secvena S0, S1 ,.., S n , unde
n

S n = ak bnk
k =0

4) Schimbarea lui z:
G(cz) este funcia generatoare pentru secvena < c n an > . n particular,

funcia generatoare pentru secvena 1, c, c 2 ,.... este

1
, dac cz < 1 .
1 cz

Pentru extragerea termenilor alternani ai unei serii se utilizeaz artificiul:

1
[G ( z ) + G ( z )] = a0 + a 2 z 2 + a4 z 4 + ...
2
1
[G ( z ) G ( z )] = a1 z + a3 z 3 + a5 z 5 + ...
2
5) Diferenierea i integrarea:
Fie G ( z ) =
ak z k , atunci

k 0

G ( z ) = (k + 1)ak +1 z i G (t )dt =
k

k 0

k 1

ak 1 k
z .
k

Observaie.
Funcia generatoare pentru < nan > este zG ( z ) .
1.1.2.2 Exemple

1) Funcia generatoare ataat irului an = 2n + 3n , cu n N :

G ( z ) = ak z k = (2k + 3k ) z k = (2 z ) k + (3z ) k =
k 0

k 0

k 0

k 0

1
1
2 5z
+
=
1 2 z 1 3z 1 5 z + 6 z 2

unde am presupus ca ambele serii geometrice sunt convergente, ceea ce se


realizeaza pentru z <

1
.
3

2) Funcia generatoare pentru < n ! >, n N :


Fie G ( z ) =
k ! z k funcia generatoare ataat. Atunci:

k 0

G ( z ) = k k ! z k 1 ; z 2G ( z ) = k k ! z k +1 ; zG ( z ) = k ! z k +1 .
k 1

k 1

k 0

Deducem imediat urmtoarea ecuaie diferenial (cu coeficieni


variabili):

z 2G ( z ) + zG ( z ) = z + (k k !+ k !) z k +1 = 1 + z + (k + 1)! z k +1 1 = k ! z k 1
k 1

sau

k 1

k 0

z 2G ( z ) + zG ( z ) = G ( z ) 1.

(*)

Cutm soluia ecuaiei omogene corespunztoare:


z 2 y + y ( z 1) = 0, unde s-a notat y ( z ) = G ( z ).
Rezult:

y 1 z
1 z
1
= 2 (prin integrare) ln y = ln(c) + 2 dz = ln c ln z
z
z
y
z

sau

c 1
G ( z ) = y ( z ) = e z , c > 0.
z

(**)

Aplicnd metoda variaiei constantelor, ncercm s gsim o soluie


particular a ecuaiei difereniale (*).
Considernd c = c( z ) i introducnd (**) n (*), rezult:
1
1
1 1 z

z
z
c
z
e
c
e
z
c
e
+

(
)

2
1
c 1 z
z

z
+

=
e 1
z2
c
e
z2
z

sau dup reduceri:

c( z ) z e

e z
et

= 1 c ( z ) =
c( z ) =
dt.
z
a t

Aadar, o soluie particular a lui (*) este G ( z ) , unde


z

et

dt
1
t
G( z) = a
e z
z

(integrala care apare nu pune probleme pentru a, convenabil ales).


Funcia generatoare cutat va fi:
z

c 1
G( z) = G( z) + G( z) = e z
z

et

dt
1
a t
+
e z cu a, c constante.
z

1.1.2.2.1 Funcii generatoare cunoscute

Acestea rezult, n general, din dezvoltri n serii de puteri:


1) teorema binomului:

r (r 1) 2
(1 + z ) = 1 + rz +
z + ... + ... = Crk z k ;
2
k =0
r

2) seria exponenial:

1 2
1
e = 1 + z + z + ... = z k ;
2!
k =0 k !
z

3) serii logaritmice:

1
1
(1) k +1 k
z
ln(1 + z ) = z z 2 + z 3 ... =
k
2
3
k 1
1 2 1 3
1 k
1
ln
= z + z + z + ... = z .
2
3
k 1 k
1 z
1.1.2.3 Funcia generatoare a unei variabile aleatoare

Presupunem n continuare o variabil aleatoare care ia numai valori


ntregi i nenegative. Fie P ( = k ) = pk probabilitatea ca v.a. s ia valoarea k.
Numim funcie generatoare a v.a. :

G ( z ) = pk z k cu z C i z 1.

(1)

k =0

Observaie.
Funcia generatoare determin univoc repartiia unei v.a. .

ntr-adevr, fie (t ) = G (eit ) funcia caracteristic ataat n mod


univoc funciei G .

p0 = G (0);

Se observ c:

pk =

G( k ) (0)
k!

, k = 1.2,.....

n continuare se va arta cum se utilizeaz G ( z ) pentru calculul


momentelor. Pentru aceasta vom calcula derivatele funciei generatoare n
punctul z = 1.
Observaie.
Funcia generatoare este definit numai pentru z 1 ; deci, derivatele n
punctul z = 1, dac exist, le vom calcula ca derivate la stnga.
Avem deci:

'
G
(1)
kpk
=

k =1

(1)

G( s ) (1) = k (k 1) (k s + 1) pk
k =s

Notnd cu M s momentul de ordinul s al lui , care este media lui M ( s ) ,


avem:
M 0 = M (1) = 1, (media unei constate este constanta nsui)

M s = M ( s ) = k s pk , s = 1,2,....
k 1

Din (1) i (1) rezult:

G (1) = M 0 = 1 deoarece

p
k =0

= 1,

G' (1) = M 1 = M ( ) = kpk


k =1

G (1) = (k k ) pk = k pk kpk + 12 p1 1 p1 =M 2 M 1
"

k =2

sau

k =2

k =2

M 2 = G (1) + G (1) .
'

"

Obinem acum uor momentele centrate de ordinul 1,2,..., astfel:


ms = M ( M ( )) s , s = 2,3,... .
n particular, pentru m2 avem:
2

m2 = M [( M ( )) 2 ] = M 2 M 12 = G" (1) + G' (1) G' (1) .

Cum dispersia D 2 ( ) este momentul de ordinul 2, m2 , avem:


2

D 2 ( ) = G" (1) + G' (1) G' (1) i media M ( ) = G' (1) .

1.2 ALGORITMI, ANALIZA UNUI ALGORITM


1.2.1 Algoritmi, caracteristici generale
Definiia 1.2.1.1. Numim algoritm o prescripie care determin un anumit
proces de calcul i care este precis, perfect inteligibil i nu admite nici un fel
de interpretri din partea celui care o duce la ndeplinire.
nelesul modern de algoritm este destul de apropiat de cel de reet,
proces, metod, procedur, rutin.
Definiia 1.2.1.2. Algoritmul reprezint un set finit de reguli care d o
secven de operaii pentru soluionarea unui tip specific de probleme.
Observaie. Orice algoritm este alctuit din pai, un pas fiind identificat
printr-un nume i un numr.
Caracteristicele unui algoritm:
1) caracter finit: un algoritm trebuie ntotdeauna s se termine ntr-un
numr finit de pai;
2) caracter determinist (claritatea): fiecare pas al unui algoritm trebuie
definit n mod precis; ordininele date trebuie s fie specificate n mod riguros i
fr ambiguiti;
3) intrarea: un algoritm are una sau mai multe intrri constituite din
cantitile iniiale care-i sunt date nainte ca algoritmul s nceap; aceste intrri
sunt luate dintr-un set specific de obiecte;
4) ieirea: un algoritm are una sau mai multe ieiri, adic acele cantiti ce
sunt ntr-o relaie specific cu intrrile;
5) eficacitatea: orice algoritm trebuie sa ne conduc la rezultatul scontat
n timp optim. Toate operaiile ce urmeaz a fi executate n algoritm trebuie s
fie suficient de fundamentate nct, n principiu, s poat fi fcute exact i ntrun interval finit de timp.
1.2.2. Exemple
1. Algoritmul lui Euclid
Fiind dai 2 ntregi m i n, s se gseasc c.m.m.d.c. al lor:

m
n
n

Pasul 1:

atribuie r m

Pasul 2:

ct timp r 0 execut
m n;
n r;

m
r m n
n

Pasul 3:

tiprete n.

2. Algoritmul pentru calculul lui a .


Se pornete de la irul recurent ( x n ) care satisface relaia:

1 a
xn +1 = xn + xn .
2 xn

Observaie: Se demonstreaz uor c acesta este convergent ctre


a (a > 0) . n algoritm se folosete o eroare de calcul .
Pasul 1:

atribuie u x0 :
1 a
atribuie v u .

Pasul 2:

2u

ct timp v > execut:


x u + v;
u v;
v

Pasul 3:

1a

u .
2u

tiprete u.

1.2.3 Analiza unui algoritm

n practic dorim algoritmi care s ndeplineasc anumite criterii valorice


bine definite. Un criteriu de apreciere este durata de timp necesar pentru
execuia algoritmului; aceasta poate fi apreciat n funcie de numrul de
execuii ale fiecrui pas.
Alte criterii sunt: adaptabilitatea algoritmului la sistemele de calcul,
simplitatea, structura, etc.
Uneori exist mai muli algoritmi pentru aceeai problem i va trebui s
decidem care este mai bun. Aceasta conduce la un domeniu extrem de interesant
al analizei algoritmilor: dndu-se un algoritm, problema este de a determina
caracteristicele performanelor sale. Ideea general este de a lua un algoritm i
de ai studia comportarea medie.
S aplicm unele tehnici stabilite deja pentru studiul unui algoritm tipic.
Fie irul X (k ), k = 1,2,..., n . S se determine max X (k ), k = 1,2,..., n .
k

Vom gsi m i j, astfel: m = X ( j ) = max X (k ) .


1 k n

Algoritmul este urmtorul:


M1 (iniializare): Se stabilete n j; n 1 k ; X (n) m.
M2 (s-a testat totul?): Dac k = 0 algoritmul s-a terminat.

M3 (comparare): Dac X (k ) m treci la pasul M5.


M4 (modificarea lui m): Se stabilete k j; X (k ) m.
M5 (micorarea lui k): k = k 1 treci la pasul M2.

START
READ n,
X(k),k=1,n

j=n

k=n-1

M1

m = X(n)
da

M2

k=0

M3

X(k)m

WRITE
j, m

STOP

DA

j=k
M4
m = X(k)

M5

k = k -1

Figura 1.1 Schema logic a algoritmului de gsire a elementului maxim dintr-un ir

Algoritmul necesit o cantitate fix de memorie, astfel nct vom analiza


numai timpul necesar pentru a-l executa.
Pentru aceasta vom determina numrul de execuii ale fiecrui pas.
Numrul pasului
M1
M2
M3
M4
M5

Numrul de execuii
1
N
N-1
A
N-1

Figura 1.2 Tabela cu numrul de execuii ale fiecrui pas

Informaiile necesare pentru determinarea timpului de rulare pe un


calculator ne sunt date cunoscnd numrul de execuii al fiecrui pas.
n tabelul din figura 1.2 se cunoate totul, cu excepia lui A care poate fi
privit ca o variabil aleatoare. Analiza algoritmului const n:
1) gsirea valorii minime pentru A;
2) gsirea valorii maxime a lui A;
3) gsirea valorii medii pentru A;
4) gsirea deviaiei standard pentru A (o indicaie calitativ n legtur cu
apropierea fa de media valorii).
1. Valoarea minim a lui A este 0; aceasta se ntmpl dac
X (n) = max X (k ) .
k

2. Valoarea maxim este n 1 ; apare n cazul X (1) > X (2) > ... > X (n) .
3. Valoarea medie este ntre 0 i n 1 . Pentru a o determina se face
presupunerea urmtoare: X (k ) sunt valori distincte i fiecare din cele
n! permutri ale acestor valori sunt la fel de probabile. n algoritmul
precedent, presupunem pentru exemplificare n = 3 :
Situaia

X (1) < X (2) < X (3)


X (1) < X (3) < X (2)
X (2) < X (1) < X (3)
X (2) < X (3) < X (1)
X (3) < X (2) < X (1)
X (3) < X (1) < X (2)

Media lui A va fi:

0 +1+ 0 +1+ 2 +1 5
= .
6
6

Valoarea lui A
0
1
0
1
2
1

n cazul general, probabilitatea ca A s aib valoarea k va fi:


nr. de permutari de n obiecte pentru care A = k
.
n!
2
3
1
De exemplu, n tabela de mai sus: p30 = ; p31 = ; p32 = .
6
6
6
P ( A = k ) = p nk =

(a)

Valoarea medie este:


n 1

An = p nk k .
k =0

4. Dispersia:
Vn = M ( A An ) 2 ;

deci

Vn = (k An ) 2 p nk = k 2 p nk 2 An k p nk + An2 p nk =
k
2

= k p nk 2 A + A = k p nk A .
k

2
n

2
n

2
n

Abaterea standard:
n = Vn .
n general ns se determin greu probabilitile p nk . n majoritatea
problemelor se va cunoate funcia generatoare Gn ( z ) , dar nu vom avea nici o
cunotin despre probabilitile reale. n schimb, se pot determina media i
dispersia din nsi funcia generatoare.
Pentru aceasta s presupunem c avem o funcie generatoare ai crei
coeficieni sunt probabiliti:
G ( z ) = p 0 + p1 z + p 2 z 2 + .....,

unde p k este probabilitatea ca un eveniment s ia valoarea k.


Dorim s calculm:
def

med (G ) = k p k ;

def
2
dis (G ) = k p k (medG) 2 .

Se observ c:

G (1) = 1 , ntruct G (1) = p k = 1


k =0

med (G ) = k p k = G (1);
k

dis (G ) = G (1) + G (1) (G (1)) 2

anterior demonstrate.
Teorem. Fie G, H dou funcii generatoare cu G (1) = H (1) = 1 . Dac
med (G ) i dis (G ) sunt definite ca mai sus, avem:
med (G H ) = med (G ) + med ( H )

dis (G H ) = dis(G ) + dis ( H ) .

Demonstraie.
Media i dispersia sunt
Semiinvarianii sunt definii astfel:

aa-numiii

semiinvariani

(cumulai).

k1 t k 2 t 2 k 3 t 3
+
+
+ ... = ln G (e).
1!
2!
3!

Deoarece semiinvarianii sunt definii n funcie de logaritmul unei funcii


generatoare, teorema de mai sus este evident.
Fie Gn ( z ) = p n 0 + p n1 z + ... + p n,n 1 z n1
(b)
N nk
, vezi (a), iar N nk reprezint numrul de permutri de n obiecte
n!
pentru care A = k , aadar, p nk este probabilitatea ca A = k ).

( unde p nk =

Totul revine la a calcula med (Gn ) i dis (Gn ) .


Demonstrm n prealabil urmtoarea propoziie.
Propoziie. Gn (z ) , definit ca mai sus, verific relaia de recuren:
Gn ( z ) =

Demonstraie.

z + n 1
G n 1 ( z ), n 2 .
n

Se arat uor prin inducie c:

N n ,k = (n 1) N n 1,k + N n 1,k 1 , atunci

pn ,k =

Nn ,k
n!

(n 1) N n1,k + N n1,k 1
=
n!

n 1
1
p n 1, k 1 +
p n 1,k ,
n
n

(n 1)(n 1)!

N n1,k
N
+ (n 1)! n1,k 1
(n 1)!
(n 1)!
=
n!
(1)

cu N n,k definii ca mai sus. Deci:


n 1
1
p n 1,k 1 +
p n 1, k .
n
n
p1,k = 0 k

1 daca k = 0
cu condiiile iniiale:
, deci p1,k =
0 daca k 1.
p n ,k = 0 pentru k < 0 si k n
(n 1)! 1
= , deoarece permutrile de n obiecte pentru
Observaie: p n,0 =
n!
n
care A = 0 se obin n cazul n care X (n) este maximul din ir; n acest caz putem
p n ,k =

permuta cele n 1 elemente rmase n (n 1)! moduri distincte.


Pe baza formulei (1) i a definiiei (b) a lui Gn (z ) gsim:
n 1
n 1
n 1
1

Gn ( z ) = pnk z k = pn ,0 + pn1,k 1 +
pn1,k z k =
n
k =0
k =1 n

1 1 n 1
n 1 n2
(2)
+ p n 1,k 1 z k +
p n1,k 1 z k .
n k =1
n n k =1
1
n 1
n 1
Dar p n ,0 = p n 1, 1 +
p n 1,0 ; din (2) rezult succesiv:
p n 1, 0 =
n
n
n
n 1 n2
z n2
n 1
p n 1, 0 + p n 1,k z k +
G( z) =
p n1,k z k =
n k =1
n k =0
n
z + n 1
n 1
z
n 1 n2
z
Gn 1 ( z ).
= G n 1 ( z ) +
Gn 1 ( z ) =
p n 1,k z k = Gn 1 ( z ) +

n
n
n
n k =0
n
n
def
=

Acum, punnd Qn (z ) =

z + n 1
, rezult Gn ( z ) =
n

G1 (z ) = 1 ).

Qk (z )

(deoarece

k =2

1
1 1
= Qn' (1) i dis (Qn ) = Qn'' (1) + Qn' (1) (Qn' (1)) 2 = 2
n
n n
n
n
1
1
(deoarece Qn'' (1) = 0 ) i notnd H n = ; i H n( 2) = 2 avem atunci:
k =1 k
k =1 k
n
n
1
med (Gn ) = med (Qk ) = = H n 1
k =2
k =2 k
Dar

med (Qn ) =

i
n
n
1 1
dis (Gn ) = dis (Qk ) = 2 = H n H n( 2 ) .
k
k =2
k =2 k

Deci:

A = ( min = 0, med = H n 1, max = n 1, dis = H n H n( 2) ) .

Se utilizeaz adesea n locul dispersiei, abaterea medie ptratic:

n = H n H n( 2) .
1.2.4 Analiza algoritmilor de sortare

Analiza acestor algoritmi include cunoaterea numrului de permutri de


elemente care au exact k inversiuni. Notm acest numr cu I n (k ) . De exemplu,
pentru n = 4, I n (1) = 3; I n (2) = 5 .
Schema logica a algoritmului este prezentat n figura 1.3.
Funcia generatoare a mrimilor I n (k ) :
Gn ( z ) = I n (0) + I n (1) z + I n (2) z 2 + ...

satisface relaia:

Gn ( z ) = (1 + z + z 2 + ... + z n 1 )Gn 1 ( z ) .

Dac mprim Gn ( z ) la n! , obinem funcia generatoare g n ( z ) pentru


distribuia de probabilitate a numrului de inversiuni ntr-o permutare aleatoare
de n elemente.
Vom avea:
g n ( z ) = h1 ( z ) h2 ( z ) ... hn ( z ) ,
unde
hn ( z ) =

1 + z + z 2 + ... + z n 1
.
n
START
i=1

M1

j=i+1

da

ai < aj

M3

M5

M2

j =j + 1

ai a j

M3

j=n
da

i=i+1

i=n-1

M7

M6
da

STOP

Figura 1.3.

Deci: med ( g n ( z )) = med h k ( z ) = med (hk ( z ));


k =1

k =1

dis ( g n ( z )) = dis hk ( z ) = dis (hk ( z )).


k =1
k =1
n

Cum

M4

med (hn ( z )) = hn' (1) =

n 1
;
2

dis (hn ( z )) = hn' (1) + hn" (1) (hn" (1)) 2 =

n 1 n 2 3n + 2 (n 1) 2
,
+

2
3
4

rezult:

1 n
n2 n
med ( g n ( z )) = (k 1) =
;
2 k =1
4
n
k 1 k 2 3k + 2 (k 1) 2
+

dis ( g n ( z )) =
2
3
4
k =1

n(2n + 5)(n 1)
,
=
72

sau

n =

n(2n + 5)(n 1)
.
72

Pentru deducerea formulelor finale s-au aplicat rezultatele demonstrate


anterior. Aadar, despre v.a. A (care semnific numrul de execuii ale pasului
M4) am gsit rezultatele:

n( n 1)
n(n 1)
n(2n + 5)(n 1)

A = min = 0, med =
, max =
, dis =
.
4
2
72

1.2.4.1 Exemple de analiz stocastic a algoritmilor

( )

1). Fie matricea aij , i = 1, n, j = 1, n . S se bordeze matricea la dreapta


cu cel mai mare element de pe fiecare linie. S se fac analiza stocastic a
algoritmului. Schema logic a algoritmului este dat n figura 1.4.
Analiza numrului de execuii pe fiecare bloc este dat n tabelul din
figura 1.5:
Blocul
M1
M2
M3
M4
M5

Numrul de
execuii
1
n
n
n(n-1)
nA

Blocul
M6
M7
M8
M9
M10

Numrul de
execuii
n(n-1)
n(n-1)-n
n
n
n-1

Figura 1.5 Analiza numrului de execuii pe fiecare bloc pentru exemplul 1.

Pentru variabila aleatoare nA avem:

min = 0,

max = n( n 1), med = n( H n 1), dis = n 2 ( H n H n( 2) ) .

START
READ
n, (aij)

M1

i=j

M2

max = aij

M3

M4

max<ai,j+1

M5

max = ai , j +1

NU
j=j+1

M7

i=i+1

M10

i=1

NU

DA

j=n-1

M6

ai ,n +1 = max

M8

i=n

M9

WRITE

aij,

i = 1, n

j = 1, n + 1

STOP

Figura 1.4 Schema logic a algoritmului din exemplul 1.

( )

2). Fie matricea aij , i = 1, n, j = 1, n . S se ordoneze cresctor de sus n


jos diagonala principal a matricei, numai prin permutarea ntre ele a liniilor i
coloanelor.
Schema logic a algoritmului din exemplul 2 este dat n figura 1.7.
Analiza numrului de execuii pe fiecare bloc este dat n tabelul din
figura 1.6:
Blocul
M1
M2
M3
M4
M5
M6
M7
M8

Numrul de
execuii
1
n-1
C n2

B
nB
nB
nB-1
B

Blocul
M9
M10
M11
M12
M13
M14
M15

Numrul de
execuii
nB
nB
nB-1
C n2
C n2 -1

n-1
n-2

Figura 1.6 Analiza numrului de execuii pe fiecare bloc pentru exemplul 2.

Pentru variabila aleatoare nB avem:

min = 0,

n3 ( 2n + 5 ) (n 1)
n 2 (n 1)
n 2 (n 1)
max =
, med =
, dis =
2
4
72

START

READ
n, (aij)
i=1

M1

j = i +1

M2

M3

aii > ajj

M4

k=1

aik a jk

NU

M5

nu

k= k+1

M7

k=n

M6

k=1

M8

a kj a ki

k=n

k=k+1
M11

i=i+1

M15

M10

da

j=j+1
M13

M9

j=n

M12

da

i=n-1

M14

da

WRITE
(aij)

STOP

Figura 1.7 Schema logic a algoritmului pentru exemplul 2.

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