调整数组使奇数全部都位于偶数前面 C语言代码
时间: 2024-05-14 13:13:17 浏览: 84
下面是一个例子,使用双指针方法将奇数移动到数组前面,偶数移动到数组后面:
```
void reorder_array(int *array, int length) {
if (array == NULL || length <= 1) {
return; // invalid input
}
int left = 0, right = length - 1;
while (left < right) {
while (left < right && (array[left] & 1) != 0) {
left++; // find the first even number from left to right
}
while (left < right && (array[right] & 1) == 0) {
right--; // find the first odd number from right to left
}
if (left < right) {
// swap the even and odd numbers
int temp = array[left];
array[left] = array[right];
array[right] = temp;
}
}
}
```
这个函数接受一个整数数组和数组长度作为参数,并将数组中的所有奇数移动到数组前面,所有偶数移动到数组后面。
阅读全文