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]));
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]));
Top comments (0)