Sunteți pe pagina 1din 10

Complexitatea algoritmilor

Algoritmul reprezintă o succesiune finită de


operaţii cunoscute care fiind executate într-o
ordine bine stabilită furnizează soluţia unei
probleme.
Un algoritm reprezintă o mulţime finită de
reguli bine definite care îndeplinesc un
obiectiv precis. Algoritmul pleacă de la o
stare iniţială şi se termină într-o stare finală.
Programe
care pot fi Scheme
derulate pe logice
calculator
ALGORITMUL

Formule
Proceduri matematice

Texte scrise
într-un limbaj
Funcţii de comunicare
între oameni
Limbaje de
Instrucţiuni programare
Coplexitatea algoritmilor se caracterizează prin
necesarul de memorie şi durata de execuţie.
ANALIZA
ALGORITMILOR

V(n) T(n)

Volumul de memerie
internă necesară pentru Un număr natural ce Timpul necesar
păstrarea datelor cu care caracterizează mărimea executării algoritmului.
operează algoritmul. datelor de intrare ale unui
algoritm.
Exemplu
Presupunem că pentru rezolvarea unei probleme
există doi algoritmi diferiţi pe care îi notăm prin
А1 şi А2. Necesarul de memorie şi timpul cerut
de algoritmul А1 este:
V1 (n)=100n2 + 4
T1(n) = n3*10-3
iar de algoritmul А2 :
V2 (n) =10n+12
T2(n) = 2n *10-6
În aceste formule volumul de memorie se calculează în
octeţi, iar timpul – în secunde.
Complexitatea algoritmilor A1 şi A2
n 10 20 30 40 50

V1(n) 9,77 39,06 87,89 156,25 244,14


Kocteţi Kocteţi Kocteţi Kocteţi Kocteţi

V2(n) 112 212 312 412 512


Kocteţi Kocteţi Kocteţi Kocteţi Kocteţi
T1(n) 1 8 9 16 25
secundă secunde secunde secunde secunde
T2(n) 0,001 1,05 18 13 36
secunde secunde secunde zile ani
(Limita impusă de mediul de programare: 64 Kocteţi pentru variabilele statice din programele Turbo Pascal 7.0)

Atenţia informaticienilor este îndreptată în special


asupra necesarului de timp, adică asupra complexităţii
temporale a algoritmilor.
Estimarea necesarului de memorie
Evaluarea necesarului de memorie V(n) poate fi
făcută calculînd numărul variabilelor nestructurate
utilizate în algoritmul supus analizei:
 integer,
 real,
 boolean,
 char,
 enumerare,
 subdomeniu,
 referinţă.
Alocarea memoriei interne în
Turbo PASCAL 7.0
Tipul variabilei Numărul de octeţi
integer 2 octeţi
real 6 octeţi
boolean 1 octet
char 1 octet
enumerare 1 octet
subdomeniu în dependenţă de tipul de bază
referinţă 4 octeţi
pointer 4 octeţi
string 256 octeţi

În cazul tipurilor structurate de date volumul de memorie


necesar unei variabile se calculează însumînd numărul de
octeţi alocaţi pentru fiecare componentă.
Exemplu
Calculaţi necesarul de memorie pentru variabilele A, B,
p, s din declaraţiile ce urmează:
exercitiu
Să se calculeze necesarul de memorie pentru variabilele
din următoarele declaraţii:
Var A : array[1..n,1..n] of integer;
B : string;
P : boolean;
C : array[1..n,1..n,1..n] of boolean;

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