function sort012Array(arr) {
let lo = 0;
let curr = 0;
let hi = arr.length - 1;
while (curr <= hi) {
switch (arr[curr]) {
case 0:
[arr[lo], arr[curr]] = [arr[curr], arr[lo]];
lo++;
curr++;
break;
case 1:
curr++;
break;
case 2:
[arr[curr], arr[hi]] = [arr[hi], arr[curr]];
hi--;
break;
}
}
}
const arr = [1, 2, 2, 0, 1, 1, 0, 2, 0, 2, 1, 0, 0, 1];
sort012Array(arr);
console.log(arr);
/*
run:
[0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2]
*/