Sort 0, 1, 2

ZeeshanAli-0704 - Sep 21 '22 - - Dev Community

Approach 1:
New Array approach

function sort(arr) {
  let zero = [];
  let one = [];
  let two = [];

  for (let i = 0; i < arr.length; i++) {
    if (arr[i] === 0) {
      zero.push(arr[i]);
    } else if (arr[i] === 1) {
      one.push(arr[i]);
    } else if (arr[i] === 2) {
      two.push(arr[i]);
    }
  }

  return zero.concat(one).concat(two);
}

console.log(sort([0, 1, 2, 2, 1, 0]));
Enter fullscreen mode Exit fullscreen mode

Approach 2 :
Keeping the same old Array & performing Swaps

function sort_1(a) {
  let lo = 0;
  let hi = a.length - 1;
  let mid = 0;
  let temp = 0;

  while (mid <= hi) {
    if (a[mid] == 0) {
      temp = a[lo];
      a[lo] = a[mid];
      a[mid] = temp;
      lo++;
      mid++;
    } else if (a[mid] == 1) {
      mid++;
    } else {
      temp = a[mid];
      a[mid] = a[hi];
      a[hi] = temp;
      hi--;
    }
  }

  return a;
}
console.log(sort_1([0, 1, 2, 2, 1, 0]));

Enter fullscreen mode Exit fullscreen mode
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player