package qinglin.learn.arithmetic;
public class ThreeColorFlag
{
public static void main(String[] args)
{
char color[] = {'b', 'w', 'b', 'w', 'w',
'b', 'r', 'b', 'w', 'r'};
int wFlag=0;
int bFlag=0;
int rFlag=color.length-1;
ThreeColorFlag demo=new ThreeColorFlag();
demo.printFlag(color);
while(wFlag<=rFlag)
{
if(color[wFlag]=='w')
wFlag++;
else if(color[wFlag]=='b')
{
demo.swap(color,wFlag,bFlag);
bFlag++;
wFlag++;
}
else
{
while(color[rFlag]=='r')
rFlag--;
demo.swap(color,wFlag,rFlag);
rFlag--;
}
}
demo.printFlag(color);
}
public void swap(char color[],int i,int j)
{
char temp=color[i];
color[i]=color[j];
color[j]=temp;
}
public void printFlag(char color[])
{
for(int i=0;i<color.length;i++)
System.out.print(color[i]+" ");
System.out.println();
}
}