Correct 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++) ConsoleWrite(a[i]+", "); } Output: 1,1,1,1,1,1,0,0,0,0,0,0,0