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])