Javascript Merge Sort
by stevenkaspar
JavaScript
let mergeSort = arr => {
if(arr.length < 2) return arr
let split_index = Math.floor(arr.length / 2)
let left = arr.splice(0, split_index), right = arr.splice(0, arr.length)
mergeSort(left)
mergeSort(right)
return merge(arr, left, right)
}
let merge = (arr, left, right) => {
let li = 0, ri = 0
while(li < left.length && ri < right.length){
if(left[li] <= right[ri]){
arr.push(left[li++])
}
else {
arr.push(right[ri++])
}
}
while(li < left.length){
arr.push(left[li++])
}
while(ri < right.length){
arr.push(right[ri++])
}
return arr
}
document.write(mergeSort([3,2,5,1,4,7,8,4,9]))