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)