这个代码在这里该如何修改?

这个代码在这里该如何修改?

img


完整代码:


/**
 *
 * @param array int整型一维数组
 * @param arrayLen int array数组长度
 * @return int整型一维数组
 * @return int* returnSize 返回数组行数
 */
int* reOrderArray(int* array, int arrayLen, int* returnSize ) {
    // write code here
    int left = 0;
    int right = arrayLen - 1;
    while (left < right)
    {
        while (array[left] % 2 == 1)//从左边找一个偶数
        {
            left++;
        }
        while (array[right] % 2 == 0)//从右边找一个奇数
        {
            right--;
        }
        if (left < right)
        {
            //int tmp = left;
            int tmp = array[left];
            array[left] = array[right];
            array[right] = tmp;
            right--;
            left++;
        }
    }
    return 1;
}

题主考虑的太复杂了,没考虑奇数和奇数 ,偶数和偶数,位置相对不变的要求,这个函数这么写,供参考:

void reOrderArray(int *array, int length)
{
     int i ,j ,tmp;
     for (i = 0;i < length - 1;i++){
        for (j = 0;j < length - i - 1;j++){
            //a[j]为偶数,a[j+1]为奇数,奇数在前,偶数在后
            if (array[j] % 2 == 0 && array[j+1] % 2 != 0 )
            {
                 tmp = array[j];
                 array[j]= array[j+1];
                 array[j+1]=tmp;
            }
        }
    }
}