#include <iostream>
#define SIZE 6
double findMedianOfTwoSortedArrays(int arr1[], int size1, int arr2[], int size2) {
int merged[SIZE] = { 0 };
int i = 0, j = 0, k = 0;
while (i < size1 && j < size2) {
if (arr1[i] < arr2[j])
merged[k++] = arr1[i++];
else
merged[k++] = arr2[j++];
}
while (i < size1)
merged[k++] = arr1[i++];
while (j < size2)
merged[k++] = arr2[j++];
int total = size1 + size2;
double median;
if (total % 2 == 0) {
int mid1 = merged[(total - 1) / 2];
int mid2 = merged[total / 2];
median = (double)(mid1 + mid2) / 2.0;
}
else {
median = (double)merged[total / 2];
}
return median;
}
int main() {
int arr1[] = { 1, 3, 5 };
int size1 = sizeof(arr1) / sizeof(arr1[0]);
int arr2[] = { 2, 4, 6 };
int size2 = sizeof(arr2) / sizeof(arr2[0]);
double median = findMedianOfTwoSortedArrays(arr1, size1, arr2, size2);
std::cout << "Median: " << median;
}
/*
run:
Median: 3.5
*/