剑指Offer12 数组奇数调整至偶数前

时间:2024-10-17 11:07:26
 /*************************************************************************
> File Name: 12_ReorderArray.c
> Author: Juntaran
> Mail: JuntaranMail@gmail.com
> Created Time: 2016年08月30日 星期二 15时15分42秒
************************************************************************/ #include <stdio.h>
#include <stdlib.h> // 所有奇数放在偶数前面
void ReorderOddEven(int* nums, int length)
{
if (length <= )
return; int left = ;
int right = length - ; while (left < right)
{
// 从左向右找第一个偶数
while (nums[left] % != )
left ++; // 从右向左找第一个奇数
while (nums[right] % == )
right --; if (left < right)
{
int temp = nums[left];
nums[left] = nums[right];
nums[right] = temp;
}
}
} void PrintNums(int* nums, int length)
{
for (int i = ; i < length; ++i)
printf("%d ", nums[i]); printf("\n");
} int main()
{
int nums[] = {, , , , , };
int length = ; PrintNums(nums, length);
ReorderOddEven(nums, length);
PrintNums(nums, length); return ;
}