可以创建一个数组,把奇数放在前面,偶数放在后面。
1.给定两个下标left和right,分别代表左边的数组起始位置和结尾的位置。
int left=0;
int right=sz-1;
int tmp=0;
2.进行循环,left,right分别从左右开始检索,左边遇到偶数则会停下,右边遇到奇数则会停下,然后再将两边的数值进行交换,再循环此类操作,便可以将奇数和偶数分开。
void swap(int arr[],int sz)
{
int left=0;
int right=sz-1;
while(left<right)
{//左边找到了偶数停下来
while((left<right)&&(arr[left]%2==1))
{
left++;
}
//右边从后面开始找,遇到奇数停止
while((left<right)&&(arr[right]%2==0))
{
right--;
}
if(left<right)
{
tmp=arr[left];
arr[left]=arr[right];
arr[right]=tmp;
}
}
}