Given an array which consists of only 0, 1 and 2. Sort the array without using any sorting algo
450DSA Cracker Solution
Given an array which consists of only 0, 1 and 2. Sort the array without using any sorting algo
Sort an array of 0s, 1s and 2s
Given an array of size N containing only 0s, 1s, and 2s; sort the array in ascending order.
Example 1:
Input:
N = 5
arr[]= {0 2 1 2 0}
Output:
0 0 1 2 2
Explanation:
0s 1s and 2s are segregated
into ascending order.
Example 2:
Input:
N = 3
arr[] = {0 1 0}
Output:
0 0 1
Explanation:
0s 1s and 2s are segregated
into ascending order.
Your Task:
You don't need to read input or print anything. Your task is to complete the function sort012() that takes an array arr and N as input parameters and sorts the array in-place.
Expected Time Complexity: O(N)
Expected Auxiliary Space: O(1)
Code
int c0=0,c1=0,c2=0;
for(int i=0;i<n;i++)
{
if(arr[i] ==0)
c0++;
else if(arr[i] == 1)
c1++;
else if(arr[i] == 2)
c2++;
}
for(int i=0;i<c0;i++)
arr[i] =0;
for(int i=0;i<c1;i++)
arr[i+c0] =1;
for(int i=0;i<c2;i++)
arr[i+c0+c1] =2;