#include <iostream>
#include <vector>
void mergeArrays(const int arr1[], int size1, const int arr2[], int size2, std::vector<int>& result) {
int i = 0, j = 0;
// Traverse both arrays
while (i < size1 && j < size2) {
if (arr1[i] < arr2[j])
result.push_back(arr1[i++]);
else
result.push_back(arr2[j++]);
}
// Copy remaining elements of arr1
while (i < size1)
result.push_back(arr1[i++]);
// Copy remaining elements of arr2
while (j < size2)
result.push_back(arr2[j++]);
}
int main() {
int arr1[] = {1, 3, 5, 6, 9, 9, 10, 12, 13};
int arr2[] = {1, 2, 4, 7, 8, 9};
int size1 = sizeof(arr1) / sizeof(arr1[0]);
int size2 = sizeof(arr2) / sizeof(arr2[0]);
std::vector<int> merged;
mergeArrays(arr1, size1, arr2, size2, merged);
std::cout << "Merged array: ";
for (int num : merged)
std::cout << num << " ";
}
/*
run:
Merged array: 1 1 2 3 4 5 6 7 8 9 9 9 10 12 13
*/