Sunteți pe pagina 1din 4

TIPUL TABLOU

Tablou=structura de date omogene


Date omogene=date ce contin elemente de acelasi tip
Tabloul este reprezentat in memorie in locatii successive (zona continua de memorie)
Tabloul se identifica printr-un nume
Accesarea valorilor din tablou se realizeaza prin intermediul indicilor (numere naturale
cuprinse intre 0 si (dimensiune-1))
Declararea unui tablou:
tip nume [dimensiune]={lista_constante};
Tipul datelor declarate intr-un tablou poate fi:

 standard (int, float, char, double, unsigned etc.)

 definit de utilizator
Numele reprezinta un identificator
Numele poate fi alcatuit din cifre, litere si caracterul ‘_’, dar nu poate incepe cu cifre.
Dimensiunea este numarul maxim de elemente continute in tablou.
Lista_constante=constante separate prin virgula(au tipul mentionat in declarare) ce sunt
atribuite primelor elemente din tablou
Vectorul este un tablou unidimensional
Accesarea unui element dintr-un vector:
nume[indice];
Citirea elementelor unui vector:
for (i=0; i<n; i++)
cin>>v[i];
Afisarea elementelor unui vector:
for (i=0; i<n; i++)
cout<<v[i]<<‘ ‘;
endl=’\n’
Matricea este un tablou bidimensional
Elementele unei matrici sunt organizate pe linii si coloane
Declararea unei matrici:
tip nume [dimensiune 1] [dimensiune 2] (={liste_constante});
Accesarea elementelor unei matrici:
nume [indice 1] [indice 2];
Citirea elementelor unei matrici;
for (i=0; i<n; i++)
for (j=0; j<m; j++)
cin>>a[i][j];
Afisarea elementelor unei matrici pe linii si coloane:
for (i=0; i<n; i++)
{for (j=0; j<m; j++)
cout<<a[i][j]<<’ ’;
cout<<’\n’;
}
Initializarea cu valori de la 1 la n (a unui vector):
for (i=0; i<=n; i++)
v[i]=i;
Caz particular de matrici:
Matrici patratice (numarul de linii este egal cu numarul de coloane)
Proprietati: N
 existenta diagonalei principale (\) si a diagonalei secundare (/) E

 daca indicii incep de la 0, i+j=n-1 pe diagonala secundara

 daca indicii incep de la 1, i+j=n+1 pe diagonala secundara

 indicii de pe diagonala principala sunt egali (i=j)


N-E: i<j
S-V: i>j
N-V: i+j<n+1
S-E: i+j>n+1
Exemple:
1. int v[11]={2, -3, 0, 1}
Daca este declarat in afara main, sau daca sunt declarate in functie dar initializate, pozitiile
4, 5, … , 10 au valoarea 0.
2. double vec [ ]={3, 4.5, 7}
Dimensiunea poate lipsi daca initializarea este prezenta
-> -> -> ->
-> -> -> ->

ALGORITMI FUNDAMENTALI DE PRELUCRARE


A DATELOR STRUCTURATE IN TABLOURI

CAUTARE SECVENTIALA, CAUTARE BINARA

Problemele de cautare realizeaza localizarea unor valori intr-un sir de numere.


CAUTAREA SECVENTIALA
Presupune parcurgerea tuturor valorilor sirului si precizarea pozitiei unde a aparut valoarea
cautata.
Complexitate: o(n) (n operatii)
CAUTAREA BINARA
Se realizeaza doar intr-un sir sortat de numere. Atat timp cat elemental nu s-a gasit, se
imparte sirul in 2 subsiruri aproximativ egale si se verifica elementul din mijlocul sirului
initial (aflat intre cele 2 siruri). Daca acest element este egal cu x, algoritmul se opreste. Daca
nu, se continua cautarea in:

 subsirul din stanga daca x<elementul din mijloc

 subsirul din dreapta daca x>elementul din mijloc


Daca subproblema curenta nu mai are elemente, inseamna ca elementul nu se gaseste in sir.
Complexitate: o(log n)
while(m--) -> de m ori

SORTAREA

Se aplica problemelor care au un sir de numere ce trebuie sortat crescator sau descrescator.
Exista mai multi algoritmi de sortare.
Complexitate: o(n2)
BUBBLE SORT/ SORTAREA PRIN METODA BULELOR
Descriere: Atat timp cat sirul nu este sortat, se parcurg elementele acestuia de la primul pana
la penultimul. Daca elementul current este mai mare decat elementul urmator, se
interschimba cele 2 valori.
SELECTIA MINIMULUI
Descriere: Se parcurg elementele de la primul pana la penultimul. Elementul curent se
interschimba cu elementul minim de dupa elementul curent, inclusive elementul curent.
SORTAREA PRIN INSERTIE
Avem un vector cu n elemente.
Descriere: Se parcurg elementele de la al 2-lea pana la ultimul. Elementul curent se insereaza
printer elementele din fata lui astfel incat aceste elemente sa devina sortate.

INTERCLASAREA

Algoritmul de interclasare se aplica vectorilor sortati pentru a obtine din elementele acestora
un alt vector sortat.
Enunt: Se citesc 2 siruri de numere ordonate crescator. Sa se obtina din cele 2 siruri un sir
crescator cu toate elementele ordonate crescator.
Descriere: Se parcurg elementele celor 2 siruri atat timp cat nu s-a ajuns la sfarsitul unui sir.
Se compara elementele curente. Daca primul element este mai mic decat al 2-lea, acesta se
pune in al 3-lea sir si se merge mai departe. Altfel, se pune in al 3-lea sir celalalt element si se
merge mai departe in al 2-lea sir. La final, se trec intr-al 3-lea sir si restul de elemente
ramase intr-unul din cele 2 siruri.

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