Documente Academic
Documente Profesional
Documente Cultură
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.
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++: