Q:
Write an algorithm to separate all ones & zeroes in an array.
Answer
1. Have two indexes pointing to two ends of array, say i and j.
2. Approach towards each other with a check condition that they dont cross each other.
3. Each iteration of while loop, swap the numbers pointed by two indexes when num[i] index number is not equal to 1.
void sort()
{
int a[]={1,0,0,0,1,1,0,1,0,1,0,0,1,0};
int i=0;
int j=13;
int temp;
while(j>i)
{
if(a[i]==1)
i++;
if(a[j]==0)
j--;
if(a[i]==0)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
for(i=0;i<14;i++)
Console.Write(a[i]+", ");
}
Output: 1,1,1,1,1,1,0,0,0,0,0,0,0
View answer
Workspace
Report Error
Discuss