JSFiddle - React, Tailwind, and code Playground

by bhupendra negi

CSS

function merge(leftArr, rightArr) {
  let leftIndex = 0,
      rightIndex = 0,
      results = [];
  
  while (leftIndex < leftArr.length && rightIndex < rightArr.length) {
    if (leftArr[leftIndex] < rightArr[rightIndex]) {
      results.push(leftArr[leftIndex]);
      leftIndex++;
    }
    else {
      results.push(rightArr[rightIndex]);
      rightIndex++;
    }
  }

  // now add remaining items of arr;
  return results.concat(leftArr.slice(leftIndex)).concat(rightArr.slice(rightIndex));
 
}

JavaScript

function mergeSort(arr) {
  if (arr.length == 1) return arr;
  let mid, leftside, rightside, results1;
  mid = Math.floor(arr.length / 2);
 
  leftside = mergeSort(arr.slice(0, mid));
  rightside = mergeSort(arr.slice(mid));
  results1 = merge(leftside, rightside);
  console.log(results1)
  return results1;

}


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



}

const results = mergeSort([3,1,4,2,5,6]);
console.log(results)