Introducere in Stiinta Calculatoarelor 2013 | Page 92

Cât de complexă este rezolvarea problemei relativ la timpul de calcul necesar? Complexitatea algoritmului În acest paragraf se vor stabile mărimi de evaluare a complexităţii algoritmilor. Analiza algoritmilor priveşte în principal timpul de execuţie, dar acesta depinde puternic de sistemul de calcul şi de contextul de rezolvare. O modalitate mai generală este calculul numărului de operaţii executate de algoritm pentru rezolvarea problemei – aceasta fiind dependentă doar de metoda de rezolvare şi de numărul n al pieselor de date de intrare. În acest sens, compararea programelor se poate face urmărind în principal numărul de operaţiuni costisitoare ca timp de execuţie, cum sunt: apeluri de funcţii, înmulţiri şi împărţiri, atribuiri, comparaţiile, etc. Pentru un număr n de piese de date la intrare, ne interesează: complexitatea temporală – notată T(n), care reprezintă numărul de operaţii executate de algoritm asupra setului de intrare (considerând o operaţie în unitatea de timp); complexitatea spaţială – notată S(n), care reprezintă numărul de locaţii de memorie folosite de algoritm (memoria de date, stiva, regiştrii); unde T(n) şi S(n) nu sunt funcţii ci relaţii, fiindcă pot avea pentru acelaşi n rezultate diferite (dependente de modul în care algoritmi diferiţi rezolvă o problemă). Analiza unui algoritm se face pentru un număr generic de n date în cele trei cazuri de interes: cel mai defavorabil – indicând maximul numărului de operaţii efectuate, mediu – indicând media numărului de operaţii efectuate, cel mai favorabil - indicând minimul numărului de operaţii efectuate. Uzual, se analizează cazul cel mai defavorabil, apreciat prin Ordinul algoritmului, notat O (O mare), acesta corespunzând timpului cel mai lung (sau spaţiului cel mai mare) necesar algoritmului pentru a prelucra 92