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)