编辑代码

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 = []
    let j = 0
    while(j < right.length){
        for (let i = 0; i < left.length; i++) {
            if(right[j] < left[i]){
                temp.push([left[i],right[j]])
            }else{
                break
            }
        }
        j += 1
    }
    
    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
}
let temp = []
console.log(mergeSort([2,4,3,1,5,6]))
console.log('逆序对为',temp)
console.log("个数为",temp.length)