function mergeSort(arr){
let len = arr.length
if(len===1){
return arr
}
let mid = Math.floor(len/2)
let left_arr = arr.slice(0,mid)
let right_arr = arr.slice(mid)
return merge(mergeSort(left_arr),mergeSort(right_arr))
}
function merge(left,right) {
const result = []
while (left.length && right.length) {
if (left[0] <= right[0]) {
result.push(left.shift())
} else {
result.push(right.shift())
}
}
while (left.length) {
result.push(left.shift())
}
while (right.length) {
result.push(right.shift())
}
return result
}
console.log(mergeSort([3,1,2,4]));
console.log(mergeSort([-1,1,0,4]));
console.log(mergeSort([9,8,7,6]));