btholt / complete-intro-to-computer-science

Complete Intro to Computer Science, as taught by Brian Holt for Frontend Masters

Home Page:https://frontendmasters.com/courses/computer-science-v2/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

better merge func for merge sort

always-maap opened this issue · comments

shifting array make it reindex the array. is n't it a better solution ?

const mergeArr = (arr1, arr2) => {
  const mergedArr = [];
  let arr1Idx = 0,
    arr2Idx = 0;
  while (arr1Idx < arr1.length && arr2Idx < arr2.length) {
    if (arr1[arr1Idx] > arr2[arr2Idx]) {
      mergedArr.push(arr2[arr2Idx]);
      arr2Idx++;
    } else {
      mergedArr.push(arr1[arr1Idx]);
      arr1Idx++;
    }
  }
  while (arr1Idx < arr1.length) {
    mergedArr.push(arr1[arr1Idx]);
    arr1Idx++;
  }
  while (arr2Idx < arr2.length) {
    mergedArr.push(arr2[arr2Idx]);
    arr2Idx++;
  }
  return mergedArr;
};

inspiration from introduction to algorithm v3