/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param array int整型一维数组 * @param arrayLen int array数组长度 * @return int整型一维数组 * @return int* returnSize 返回数组行数 */ /*本文思路是首先统计出数组内奇数元素(odd_num)的个数,然后新建一个等长的数组。 数组里面有两个变量,head变量的下标从0到odd_num-1,rear变量的下标从odd_num到arrayLen-1,顺序遍历原数组碰到为奇数的存放到新数组的前面,head变量向后移动一位,反之存放到新数组的后面,rear变量向后移动一位。 最后把新数组的值依次赋值给原数组。*/ int* reOrderArrayTwo(int* array, int arrayLen, int* returnSize ) { // 统计出数组内奇数元素的个数 int odd_num = 0; for (int i = 0; i < arrayLen; i++) { if (array[i] % 2 == 1) { odd_num++; } } // 新建一个等长的数组以及数组内的两个变量 int storage[arrayLen]; int head = 0, rear = odd_num; // 把数组内奇偶元素分开存放到新数组 for (int i = 0; i < arrayLen; i++) { if (array[i] % 2 == 1) { storage[head]=array[i]; head++; } else{ storage[rear]=array[i]; rear++; } } // 把新数组的值赋值给原数组 for (int i = 0; i < arrayLen; i++) { array[i]=storage[i]; } *returnSize=arrayLen; return array; }