W Karas wrote:
> Manu wrote:
> > I know counting sort can do in linear time but we dont need to use and
> > extra space.
> > as we do in case of counting sort.
> >
> >
> > I came up with this sol. but i think it's not stable so if u can find a
> > stable algo plzzz....
> >
> >
> > i=0;j=n-1;
> >
> > while(i<j) {
> >      if(a[i]==a[j]) {
> >         if(a[i]==0)
> >             i++;
> >         else
> >             j--;     //ie equal to 1
> >       continue; //ie go to  while (i<j)
> >      }
> >     if(a[i]<a[j])
> >        i++;       //ie a[i] has to be zero only
> >    else {         //ie a[i] =1 and a[j] = 0 therefore swap them
> >       swap(a[i],a[j]);
> >       i++;
> >       j--;
> >    }
> > } //end of while
>
> Could just do one quicksort-style pivot:

Oops.

i = 0;
j = n - 1;
while (i < j)
  if (a[i] == 0)
    i++;
  else if (a[j] == 1)
    j--;
  else
    { a[i++] = 0; a[j--] = 1; }


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/algogeeks
-~----------~----~----~----~------~----~------~--~---

Reply via email to