Se consideră un vector a cu elemente numere întregi, cu lungimea n. Să se rearanjze elementele vectorului astfel încât numerele pare să fie scrise înaintea numerelor impare. 18
Pentru a rearanja elementele vectorului astfel încât numerele pare să fie scrise înaintea numerelor impare, putem folosi o metodă simplă de sortare.
Putem utiliza două variabile pentru a ține evidența pozițiilor în vectorul a: i pentru numerele pare și j pentru numerele impare. Parcurgem vectorul a și pentru fiecare element verificăm dacă este par sau impar. Dacă este par, îl plasăm la poziția i și incrementăm i, altfel îl plasăm la poziția j și incrementăm j.
După ce am parcurs întregul vector, toate numerele pare vor fi plasate înaintea numerelor impare.
#include <iostream>
using namespace std;
int main() {
const int MAX = 100;
int n, a[MAX], i = 0, j = 0;
// Citirea vectorului a
cout << „Introduceti lungimea vectorului: „;
cin >> n;
cout << „Introduceti elementele vectorului: „;
for (int k = 0; k < n; k++) {
cin >> a[k];
}
// Rearanjarea elementelor vectorului
while (j < n) {
if (a[j] % 2 == 0) {
swap(a[i], a[j]);
i++;
}
j++;
}
// Afisarea vectorului a rearanjat
cout << „Vectorul a dupa rearanjare este: „;
for (int k = 0; k < n; k++) {
cout << a[k] << ” „;
}
cout << endl;
return 0;
}
Observați că în cod am utilizat funcția swap()
pentru a interschimba elementele vectorului. Această funcție este predefinită în biblioteca standard C++ și este utilizată pentru a interschimba valorile a două variabile.
Dacă este necesar să evitați utilizarea funcției swap()
, puteți folosi o variabilă auxiliară pentru a salva temporar o valoare înainte de a o suprascrie cu alta valoare. De exemplu, pentru interschimbarea valorilor variabilelor a și b, puteți utiliza următorul cod:
int temp = a;
a = b;
b = temp;