function mergeSort(arr) {
let len = arr.length
if(len < 2) {
return arr
}
let middle = Math.floor(len / 2),
left = arr.slice(0, middle),
right = arr.slice(middle)
return merge(mergeSort(left, mergeSort(right)))
}
function merge(left, right) {
let result = []
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
}
Javascript的归并排序
最新推荐文章于 2023-07-06 14:01:11 发布