mergeSort
by xu xiaofei
HTML
12345
JavaScript
function mergeSort(arr) {
if(arr.length<2) return arr
const middle = parseInt(arr.length/2)
const left = arr.slice(0, middle)
const right = arr.slice(middle)
return merge(mergeSort(left), mergeSort(right))
}
function merge(left, right) {
const result = []
while(left.length>0 && right.length>0) {
result.push(left[0]>right[0]?right.shift():left.shift())
}
return result.concat(left).concat(right)
}
const r = mergeSort([3,2,1,4,6,7,8,4,3,9,1,4,0])
console.log(r)