function findMedianOfTwoSortedArrays(arr1: number[], arr2: number[]) {
const size1: number = arr1.length;
const size2: number = arr2.length;
let i: number = 0, j: number = 0;
let mid1: number = -1, mid2: number = -1;
if ((size2 + size1) % 2 == 1) {
for (let k = 0; k <= (size1 + size2) / 2; k++) {
if (i != size1 && j != size2) {
mid1 = (arr1[i] > arr2[j]) ? arr2[j++] : arr1[i++];
}
else if (i < size1) {
mid1 = arr1[i++];
}
else {
mid1 = arr2[j++];
}
}
return mid1;
}
else {
for (let k = 0; k <= (size1 + size2) / 2; k++) {
mid2 = mid1;
if (i != size1 && j != size2) {
mid1 = (arr1[i] > arr2[j]) ? arr2[j++] : arr1[i++];
}
else if (i < size1) {
mid1 = arr1[i++];
}
else {
mid1 = arr2[j++];
}
}
return (mid1 + mid2) / 2.0;
}
}
const arr1: number[] = [1, 3, 5];
const arr2: number[] = [2, 4, 6];
const median = findMedianOfTwoSortedArrays(arr1, arr2);
console.log("Median: " + median);
/*
run:
"Median: 3.5"
*/