Merge Sort

Merge Sort

by Ammi Reddy Kovvuri

JavaScript

function merge(left, right) {
let arr = [];
while(left.length && right.length) {
	if(left[0]<right[0]) { arr.push(left.shift()); }
  else { arr.push(right.shift()); }
}
return arr.concat(left.slice().concat(right.slice()));
}

function mergeSort(arr) {
	if(arr.length<2) { return arr;}
  
	let middle = Math.floor(arr.length/2);
  let left = arr.slice(0, middle);
  let right = arr.slice(middle);
  
  return merge(mergeSort(left), mergeSort(right));
  
}

console.log(mergeSort([7,5,3,2,1,6,3,8]));