例:初始整型数组arr[]={1,2,3,4,5,6,7,8,9,10};
调整后:arr数组中1,3,5,7,9在数组的前部分,arr数组中2,4,6,8,10在数组的后部分。
法一:
#include <stdio.h>
void move1(int* p,int len) {
int temp = 0;
int* left = p;
int* right = p + len;
while (left < right) {//137
if (*left % 2 == 1) {//从左向右找偶数
left++;
}
if (*right % 2 == 0) {//从右向左找奇数
right--;
}
if ((0 == *left % 2)&&(1==*right%2)&&(left<right)) {//交换
temp = *left;
*left = *right;
*right = temp;
left++;
right--;
}
}
}
void print(int arr[], int sz) {//打印数组元素
int i = 0;
for (i = 0; i <=