🖨️ Programare C++: Algoritmi de interclasare a vectorilor

Imagine: 🖨️ Programare C++: Algoritmi de interclasare a vectorilor

🖨️ Programare C++: Algoritmi de interclasare a vectorilor

Interclasarea vectorilor este o operație comună în programare și este necesară în multe aplicații. Acest lucru poate fi realizat cu ușurință în limbajul C++ folosind vectori. În acest articol, vom descrie mai multe metode de interclasare a doi vectori, a[100001] și b[100001], fără a utiliza și cu ajutorul Standard Template Library (STL).

Interclasarea cu un al treilea vector

Una dintre cele mai simple metode de interclasare a doi vectori constă în utilizarea unui al treilea vector. Această metodă constă în a adăuga elementele din cei doi vectori în ordine în vectorul rezultat. Aici este un exemplu de cod care demonstrează această metodă:

În acest exemplu, interclasarea se face prin adăugarea elementelor din cei doi vectori în ordine într-un al treilea vector c[200002].

Afișarea interclasării (fără al treilea vector)

Vom folosi același cod precum metoda anterioară, însă vom salva memoria de execuție a programului fără a crea un vector suport, afișând direct termenii în ordinea corespunzătoare procesului de interclasare. Mai jos este un exemplu care folosește această metodă:

În exemplu de mai sus datele nu rămân salvate nicăieri în urma interclasării! A nu se folosi în cazul în care mulțimea numelor interclasate trebuie modficată la rândul ei într-o problemă!

Interclasare prin funcția predefinită a Standard Template Library, std::merge()

Luând aceleași două mulțimi de numere, vom apela funcția menționată anterior cu parametrii aferenți pentru a realiza rapid și eficient interclasarea acestora. Mai jos poți vedea programul aferent utilizării acestei funcții pentru a interclasa sortat două mulțimi de numere a și b, în vectorul rezultat c.

În blocul de cod de mai sus vectorii sunt indexați de la 1, în cazul particular în care a[0], respectiv b[0] sunt primele numere din cele două mulțimi vom elimina toate adăugările de 1 de la parametrii funcției de interclasare.

Toate sursele prezente în acest articol sunt mici modificări ale rezolvărilor problemelor de interclasare de pe PBinfo, pe care le recomandăm pentru a fixa mai bine algoritmii: interclasare, interclasare1, interclasare2, interclasare3.

Andrei Frîntu
Andrei Frîntu

Fondatorul platformei - mentor Academia

LinkedIn Instagram GitHub
© Copyright 2024 - CodulLuiAndrei.ro - Toate drepturile sunt rezervate