题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
#include<iostream>
using namespace std;
bool func(int n) {//解耦出一个功能函数
return (n & 1) == 0;
}
void resort(int* array, int size) {
if (array == nullptr || size == 0)return;
int* front = array;
int* back = array + size - 1;
while (front != back) {
//前面的指针向后 直到碰到偶数
while (!func(*front) && front < back) {
front++;
}
//后面的指针向前 直到碰到奇数
while (func(*back) && front < back) {
back--;
}
if (front < back) {
int temp = *front;
*front = *back;
*back = temp;
}
}
}
int main() {
int a[5] = { 2,4,1,5 };
resort(a, 5);
return 0;
}