题目:
输入一个整数数组,实现一个函数,
来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,
所有偶数位于数组的后半部分。
思路分析:
将整个数组分为左边和右边,每判断一个left,随之判断一个right。如果满足left为偶数且right 为奇数两者交换。
while循环:
1、判断左边元素是否为奇数,如果是left++跳过下面的语句保证此元素位置不变,如果为偶数进行下一步操作。
2、判断右边元素是否为奇数。
(1)、如果右边元素为奇数,保存此时的left和right值并且将right与left交换。
(2)、如果右边元素为偶数,right++,进行第二次循环。
代码如下:
void adjust(int arr[], int sz)
{
int *left = arr;
int *right = arr + sz - 1;
int tmp = 0;
while (left <