Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,851 questions

51,772 answers

573 users

How to get the median of two sorted arrays in JavaScript

4 Answers

0 votes
function findMedianOfTwoSortedArrays(arr1, arr2) {
    const size1 = arr1.length;
    const size2 = arr2.length;
    let merged = Array(arr1.length + arr2.length).fill(0);
        
    for (let i = 0; i < size1; i++) {
        merged[i] = arr1[i];
    }
    
    for (let i = 0; i < size2; i++) {
        merged[i + arr1.length] = arr2[i];
    }
    
    merged.sort();
    
    let total = size1 + size2;
    let median = 0.0;
    
    if (total % 2 == 0) {
        let mid1 = merged[Math.floor((total - 1) / 2)];
        let mid2 = merged[Math.floor(total / 2)];
        median = parseFloat(mid1 + mid2) / 2.0;
    }
    else {
        median = merged[Math.floor(total / 2)];
    }
    
    return median;
}

const arr1 = [1, 3, 5];
const arr2 = [2, 4, 6];

const median = findMedianOfTwoSortedArrays(arr1, arr2);

console.log("Median: " + median);




/*
run:

Median: 3.5

*/

 



answered Jul 19, 2023 by avibootz
edited Sep 23, 2025 by avibootz
0 votes
function findMedianOfTwoSortedArrays(arr1, arr2) {
    const size1 = arr1.length;
    const size2 = arr2.length;
    let i = 0, j = 0;
    let mid1 = -1, mid2 = -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 parseFloat((mid1 + mid2) / 2);
    }
}

const arr1 = [1, 3, 5];
const arr2 = [2, 4, 6];

const median = findMedianOfTwoSortedArrays(arr1, arr2);

console.log("Median: " + median);



/*
run:

Median: 3.5

*/

 



answered Jul 19, 2023 by avibootz
edited Sep 23, 2025 by avibootz
0 votes
function findMedianOfTwoSortedArrays(arr1, arr2) {
    let compare = (i, j) => { return i - j; }
    
    let merged = arr1.concat(arr2).sort(compare);
    
    if (merged.length % 2 == 0) {
        return (merged[merged.length / 2 - 1] + merged[merged. length / 2]) / 2;

    }
    
    return merged[Math.floor(merged.length / 2)];
}
 
const arr1 = [1, 3, 5];
const arr2 = [2, 4, 6];
 
const median = findMedianOfTwoSortedArrays(arr1, arr2);
 
console.log("Median: " + median);
 
  
 
 
/*
run:
 
Median: 3.5
 
*/

 



answered Jul 20, 2023 by avibootz
edited Sep 23, 2025 by avibootz
0 votes
function findMedianOfTwoSortedArrays(arr1, arr2) {
    const merged = [...arr1, ...arr2].sort((a, b) => a - b);
    const mid = Math.floor(merged.length / 2);

    return merged.length % 2 !== 0
        ? merged[mid]
        : (merged[mid - 1] + merged[mid]) / 2;
}

const arr1 = [1, 3, 5];
const arr2 = [2, 4, 6];
 
const median = findMedianOfTwoSortedArrays(arr1, arr2);
 
console.log("Median: " + median);


 
/*
run:
 
Median: 3.5
 
*/

 



answered Sep 23, 2025 by avibootz
...