Anda di halaman 1dari 19

1. Algoritmi. Definiţia. Aspectele cuprinse în studiul algoritmilor.

Un algoritm este o metodă de rezolvare pas cu pas a problemelor. O problemă se consideră a fi


constituită din date de intrare ¸si un enunt¸ care specifică relația existenta ˆıntre datele de intrare ¸si
soluția problemei.

Un algoritm este o succesiune bine precizat˘a de prelucr˘ari care aplicate asupra datelor de intrare ale
unei probleme permit obt¸inerea ˆın timp finit a solut¸iei acesteia

Primul algoritm se consider˘a a fi algoritmul lui Euclid (utilizat pentru determinarea celui mai mare
divizor comun a dou˘a numere naturale).

Elaborarea unui algoritm necesit˘a:

• cuno¸stint¸e specifice domeniului de unde provine problema de rezolvat;

• tehnici generale de rezolvare a problemelor;

• intuit¸ie ¸si gˆandire algoritmic˘a.

2. Proprietăţile algoritmilor.

Un algoritm trebuie s˘a posede urm˘atoarele propriet˘at¸i:

Generalitate. Un algoritm destinat rezolv˘arii unei probleme trebuie s˘a permit˘a obt¸inerea rezultatului
pentru orice date de intrare ¸si nu numai pentru date particulare de intrare.

Finitudine. Un algoritm trebuie s˘a admit˘a o descriere finit˘a ¸si fiecare dintre prelucr˘arile pe care le
cont¸ine trebuie s˘a poate fi executat˘a ˆın timp finit. Prin intermediul algoritmilor nu pot fi prelucrate
structuri infinite.

Rigurozitate. Prelucr˘arile algoritmului trebuie specificate riguros, f˘ar˘a ambiguit˘at¸i. ˆIn orice etap˘a a
execut¸iei algoritmului trebuie s˘a se ¸stie exact care este urm˘atoarea etap˘a ce va fi executat˘a.

Eficient¸˘a. Algoritmii pot fi efectiv utilizat¸i doar dac˘a folosesc resurse de calcul ˆın volum acceptabil. Prin
resurse de calcul se ˆınt¸elege volumul de memorie ¸si timpul necesar pentru execut¸ie.

3. Descrierea algoritmilor.
4. Dimensiunea datelor de intrare a algoritmilor.

5. Complexitatea calculului. Resursele de calcul.


6. Analiza unui algoritm. Timpul de execuţie a algoritmului.
7. Complexitatea asimptotică. Θ – notaţia. O – notaţia. Ω – notaţia.
8. Complexitatea asimptotică. o – notaţia. - notaţia.
9. Etapele analizei complexităţii

10. Analiza empirică a complexităţii algoritmilor


11. Analiza algoritmilor recursivi. Relaţii de recurenţă.
B) rădăcini reale egale
C) rădăcini complexe
12. Recurenţe liniare omogene. Metoda ecuaţiilor caracteristice de rezolvare a recurenţelor
13. Recurenţe liniare neomogene. Metoda ecuaţiilor caracteristice de rezolvare.
14. Metoda schimbării variabilei.
15. Metoda master de rezolvare a recurenţelor. Teorema master
16. Metoda divide şi stăpâneşte.
17. Tehnica greedy. Noţiuni generale.
18. Arbori parţiali de cost minim. Algoritmul Kruskal

19. Arbori parţiali de cost minim. Algoritmul Prim.


20. Arbori binari de interclasare. Algoritmul Huffman

21. Cele mai scurte drumuri care pleacă din acelaşi punct. Algoritmul Dijkstra.
22. Programarea dinamică. Principiile fundamentale ale programării dinamice
23. Paşii dezvoltării unui algoritm de programare dinamică.

24. Determinarea celor mai scurte drumuri între fiecare pereche de vârfuri. Algoritmul lui Floyd.
25. Parantezarea optimală a unui produs de matrice.