Sunteți pe pagina 1din 5

INTERCLASAREA

VECTORILOR
Rada Andra Gabriela
clasa a X-a B
Considerăm două tablouri unidimensionale cu elemente numere
întregi ordonate crescător. Se dorește construirea unui alt tablou, care să
conțină valorile din cele două tablouri, în ordine.

Haideti sa luam un mic exemplu pe care sa lucram in continuare:

O solutie care ar rezolva problema destul de rapid este sa lipim cei doi vectori. Si sa
obtinem vectorul C = {3, 5, 6, 7, 1, 4, 8}; dupa aceea sortam vectorul crescator si
obtinem C = {1, 3, 4, 5, 6, 7, 8}; . Insa aceasta rezolvare nu este cea mai eficienta,
datorita sortarii.
Algoritmul de interclasare este:
1. Declaram un vector C – gol (k = 0)
2. Cat timp se afla elemente in ambii vectori (i <= n si j <= m):
1. Comparam elementul Ai cu Bj
2. Incrementam k
3. Adaugam in C, pe pozitia k, elementul cel mai mic intre
Ai cu Bj
4. Incrementam indicele corespunzator vectorului din care
am facut adaugarea (incrementam i daca elementul Ai a
fost mai mic, si in caz contrar, incrementam j)
3. Verificam in care dintre cei doi vectori au mai ramas
elemente.
1. Daca i <= n atunci inseamna ca mai avem elemente in
vectorul A, pe care le luam in ordine si le adaugam la
finalul vectorului C.
2. Daca j <= m atunci inseamna ca mai avem elemente in
vectorul B, pe care le luam in ordine si le adaugam la
finalul vectorului C.
4. Algoritmul se incheie, iar vectorul C contine elementele din
A si din B ordonate crescator.
Implementarea in C++:

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