merg sort

PHOTO EMBED

Wed Oct 12 2022 07:31:10 GMT+0000 (Coordinated Universal Time)

Saved by @RedJohn

const mergArrays = (arr1, arr2) => {
    const res = []
    let i = 0;
    let j = 0;
    while(i < arr1.length && j < arr2.length) {
        if(arr2[j] > arr1[i]) {
            res.push(arr1[i])
            i++
        } else {
            res.push(arr2[j]) 
            j++
        }
    }
    while(i < arr1.length) {
        res.push(arr1[i])
        i++
    }
    while(j < arr2.length) {
        res.push(arr2[j])
        j++
    }
    return res
}

const mergSort = (arr) => {
    if(arr.length <= 1) return arr
    const mid = Math.floor(arr.length/2)
    const start = mergSort(arr.slice(0,mid))
    const end = mergSort(arr.slice(mid))
    return mergArrays(start, end)
}

mergSort([1,6,3,2,10,45,5,4])

// mergArrays([1,7,9,20], [2,4,6,8,30])
content_copyCOPY