Documente Academic
Documente Profesional
Documente Cultură
SDA
Asis. univ. ing. Cornelia Melenti
Probleme organizatorice
Curs:
Joi, 14-16
Laborator:
Structura curs
Structura curs
Obiective curs
Evaluarea
30% lab+colocviu
Bibliografie
Bibliografie
IGNAT Iosif, IGNAT Claudia-Lavinia - Structuri de date si algoritmi, 2007, Cota 527.366
Notiuni de baza
1.
2.
Analiza
=> modelul (matematic)
Design
=> cod sursa
Implementarea => cod executabil
Testare
=> executie cu date de test
Lansare in functiune => executie cu date reale
Modelul de date
Modelul de date
Algoritmul
2.
3.
4.
Metode de analiza
Analiza structurata
starilor)
Analiza functionala
Buble sort
Insertion Sort
Merge sort
Quicksort
Design si implementare
Lansare in functionare
Linkeditare
Cod direct executabil
Date de intrare
Executie
Rezultate
Resursele necesare
Necesarul de memorie
Nr. de accesari ale suportului extern de memorare
Nr. de operatii aritmetice de baza
Traficul in retea
Formal:
n lg n + n = O (n2)
Gradul
1
log n
Liniar
n log n
n log n
n2
Quadratic
n3
Cubic
2n
Exponential
n!
factorial
Program = statement
Timpul de executie al programului
1 + Time(expr)
n times Time(Prog')
1 + Time(expr1) +
Prog = array[expr]'':
1 + Time(expr)
Time(function)
Algoritmi nerecursivi
Algoritmi nerecursivi
(1)
(2)
(3)
(4)
(5)
(6)
Timpii de rulare pentru instructiunile de asignare (4),(5) si (6) sint O(1), deci pentru secventa (4)-(6), timpul
este O(max(1,1,1))=O(1).
Pentru instructiunea if-then (3), timpul este suma dintre cel pentru evaluarea conditiei, O(1) si cel al secventei
ce se executa la conditie adevarata, tot O(1), calculat mai sus, deci O(1), acesta fiind deci si timpul pentru o
iteratie a instructiunii for (2).
Pentru cele n-i iteratii ale lui for (2), timpul de executie este O((n-i)*1)=O(n-i).
Pentru instructiunea for (1), avind n-1 iteratii, timpul de executie este:
S(i=1,n-1)(n-i)=(n-1)+(n-2)+...+(n-n+1)=n^2/2-n/2,
deci este O(n^2).
Algoritmi recursivi
a=1, T(1) =1
a>1, T(a) = 1 + [log a]
A numar par
A impar
T(a) = c1+T(a/2)
T(a) = c1 + T([a/2])
19
19
22
38
11
76
76
152
152
304
608
608
855