快排

const quickSort = arr =>{
    let length = arr.length
    if(length<=1){return arr;}
    let pivotIndex = Math.floor.call(arr,length/2)
    let pivot = arr.splice.call(arr,pivotIndex,1)[0]
    const left = []
    const right = []
    for(let i=0;i<length;i++){
        if(arr[i]<pivot){
            left.push(arr[i])
            }else{
            right.push(arr[i])
            }
        }
    return quickSort(left).concat([pivot],quickSort(right))
}

归并

const merge = (a,b) =>{
    if(a.length===0){return b};
    if(b.length===0){return a};
    if(a[0]>b[0]){return [b[0]].concat(merge(a,b.slice(1)))}
    return  [a[0]].concat(merge(a.slice.call(a,1),b))
}
const mergeSort = arr =>{
    if(arr.length===1){return arr}
    let pivot = Math.floor.call(arr,arr.length/2)
    let left = arr.slice.call(arr,0,pivot)
    let right = arr.slice.call(arr,pivot)
    return merge(mergeSort(left),mergeSort(right))
}