C++: dati due array ordinati, riunirli in un terzo sempre ordinato
/* Questa implementazione unisce due array ordinati (arr1 e arr2) in un terzo array ordinato (arr3) utilizzando l'algoritmo merge. I risultati vengono stampati alla fine del programma. */
#include <iostream>
using namespace std;
// Funzione per unire due array ordinati in un terzo array ordinato
void unisciArrayOrdinati(int arr1[], int size1, int arr2[], int size2, int arr3[], int size3) {
int i = 0, j = 0, k = 0;
// Combinare gli elementi dei due array finché uno dei due arriva alla fine
while (i < size1 && j < size2) {
if (arr1[i] <= arr2[j]) {
arr3[k] = arr1[i];
i++;
} else {
arr3[k] = arr2[j];
j++;
}
k++;
}
// Aggiungi gli elementi rimanenti del primo array, se ce ne sono
while (i < size1) {
arr3[k] = arr1[i];
i++;
k++;
}
// Aggiungi gli elementi rimanenti del secondo array, se ce ne sono
while (j < size2) {
arr3[k] = arr2[j];
j++;
k++;
}
}
intmain() {
int size1 = 5;
int arr1[] = {1, 3, 5, 7, 9};
int size2 = 4;
int arr2[] = {2, 4, 6, 8};
int size3 = size1 + size2; // Dimensione del terzo array
int arr3[size3];
unisciArrayOrdinati(arr1, size1, arr2, size2, arr3, size3);
// Stampa del terzo array ordinato risultante
for (int i = 0; i < size3; i++) {
cout<< arr3[i] << " ";
}
return 0;
}
Questa implementazione unisce due array ordinati (arr1 e arr2) in un terzo array ordinato (arr3) utilizzando l'algoritmo merge. I risultati vengono stampati alla fine del programma.
Commenti
Posta un commento