思想完全是采用快速排序:
bool isEven_(int n)//是否是偶数
{
return (n&1)==0;
}
void swapOddEven(int arr[], int left, int right)
{
int i=left;
int j=right;
int temp=arr[left];
if(left > right)
{
return ;
}
while(i<j)
{
while(i<j && isEven_(arr[j]))
j--;
arr[i]=arr[j];
while(i<j && !isEven_(arr[i]))
i++;
arr[j]=arr[i];
}
arr[i]=temp;
swapOddEven(arr, 0, i-1);
swapOddEven(arr, j+1, right);
}