Scurt istoric. Noiuni de baza: Algoritm, Structuri de date, etc.
Teoria algoritmilor si Maina Turing. Structuri de date. Clasificarea acestora. C versus C++. Algoritmi combinatoriali. Introducere. Permutri, Combinri, Aranjamente. Programarea algoritmilor. Formule Herigonne, Pascal. Demonstraie. Exemple i aplicaii practice. Recursia. Algoritm recursiv. Funcii recursive. Exemple. a) Programarea algoritmului n! ; b) Programarea algoritmului Numerele lui Fibonacci, c) Programarea algoritmului Problema tunurilor din Hanoi.
8. Sortare prin simpl nserare (Straight insertion). Posibiliti de mbuntire a metodei.
9. Sortare prin simpl selectare (Straight selection). Posibiliti de mbuntire a metodei. 10. Sortare prin simplu schimb (Buble sort). Posibiliti de mbuntire a metodei. 11. Sortare de tipul Shaker. (Shakersort). 12. Parametrii care reflect eficiena algoritmilor i programelor. Definitie O(g(x)). Calculul complexitii algoritmului. Tehnici de calcul a complexitii. 13. Sortarea cu micorarea incrementului. ( Shell Sort) 14. Sortarea prin intermediul arborilor. Sortarea piramidal. (Heapsort) 15. Sortarea prin divizare. (Quicksort). 16. Cutarea informaiei textuale. Specificul problemei : a) Programarea algoritmului de cutare a modelului n text dup Metoda direct . b) Programarea algoritmului Knuth-Morris Pratt. 17. Grafuri. a) Noiuni de baz. Modalitatea de prezentare n memoria calculatorului utiliznd diferite structuri de date. b) Programarea algoritmilor pentru determinarea drumului minim (maxim): Ford simplificat ( pentru grafuri fr circuite). c) Programarea algoritmilor de verificare a existenei ciclurilor n grafuri. Programarea algoritmilor pentru determinarea drumului minim : Dijkstra
18. Arbori. Exemple de reprezentare:
a) Reprezentarea prin liste generalizate. b) Reprezentare prin structuri nlnuite. 19. Arbori. Specificul programrii problemei. Programarea algoritmilor care determin arborele de cost minim ntr-un graf dup algoritmii: a) Algoritmul PRIM, b) Algoritmul KRUSCAL. 20. Arbori binari. Operaii asupra arborilor binari. 21. Strategii de traversare a arborilor binari: 12/11/2013 LECTII SDA, DROPBOX
a) Traversarea n Preordine: prelucrare n ordinea: rad, SAS, SAD;
b) Traversarea n Inordine: prelucrare n ordinea: SAS, rad, SAD; c) Traversarea n Postordine: prelucrare n ordinea: SAS, SAD, rad. 22. Arbori binari de cutare (BST). a) Tabelele Hashing. b) Funcii: Search, Insert, Delete. Exemple de programe. c) Detaarea celui mai mic ( celui mai mare nod) din arborele BST. d) Crearea unui BST pornind de la secvena de atomi. 23. Arbore binar de cutare dinamic echilibrat (AVL). Transformarea structurii arborelui dup nserare pentru a conserva proprietatea de arbore binar echilibrat: a) Imaginea oglind a rotaiei dreapta - stnga. b) nserarea prin rotaii duble. 24. Coada cu prioriti. Operaii de inserare, eliminare. Structura Heap. Algoritm Heapsort. 25. Structuri de date elementare i abstracte. Exemple ( pe baza elementelor din teoria grafurilor). - Vezi referat din lecia 6. 26. Tehnica Greedy Exemplu. Minimizarea timpului mediu de ateptare Exemplu. Interclasarea optim a irurilor ordonate Exemplu. Arbori pariali de cost minim Exemplu. Algoritmul lui Kruskal Exemplu. Algoritmul lui Prim Exemplu. Implementarea algoritmului lui Kruskal Exemplu. Cele mai scurte drumuri care pleac din acelai punct. Implementarea algoritmului lui Dijkstra 27. Algoritmi Divide et Impera Tehnica Divide et Impera. Exemplu. Cautare binara. Exemplu. Mergesort (Sortare prin interclasare). Exemplu. Mergesort (Sortarea rapida). 28. Algoritmi de tipul Backtracking. Specificul problemelor care pot fi rezolvate cu ajutorul Backtracking. Exemple: a) Problema amplasrii reginelor pe tabla de ah; b) Parcurgerea tablei de ah cu ajutorul muscarii calului