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

Post popolari in questo blog

Simulazioni di reti (con Cisco Packet Tracer)

1S: esercizi in Excel e fogli di Google