here in O(n) and stable
void swap (int *a,int *b) {
int t;
t=*a;
*a=*b;
*b=t;
}
int main(void) {
int a[] = {12, 34, 45, 9, 8, 90, 3},odd=0,even=0,n=7;
while(odd<n && even < n) {
if(a[even]%2==0){
if(odd==even)
odd++;
even++;
}
else if(a[even]%2==1) {
while(a[odd]%2 != 0 && odd < n+1) {
odd++;
}
if(odd < n){
swap(&a[even],&a[odd]);
even++;
}
}
}
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
getchar();
}
On Thu, Jul 21, 2011 at 11:55 PM, muruga vel <[email protected]>wrote:
>
> left=0;right=n-1;
> while(left<right)
> {
> while(left<right && a[left]%2==0)
> left++;
> while(left<right && a[right]%2==1)
> right--;
> if(left<right)
> {
> swap(&a[l],&a[r]);
> l++;
> r--;
> }
> O(n)
>
>
> On Thu, Jul 21, 2011 at 11:49 PM, Abhishek Sharma
> <[email protected]>wrote:
>
>> small change in the pseudocode..
>>
>>
>> for (i=0 until i+ a[].length){
>>
>> if (*leftptr % 2 == 0)
>> A2[i] = *leftptr ;
>>
>> else if (*rtptr % 2 == 0)
>>
>> A2[i+a[].length-1] = *rtptr ;
>>
>> leftptr++;
>> rtptr--;
>>
>>
>> }
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Algorithm Geeks" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/algogeeks?hl=en.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/algogeeks?hl=en.
>
--
Atul Purohit
--
You received this message because you are subscribed to the Google Groups
"Algorithm Geeks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/algogeeks?hl=en.