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