题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,
使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,
并保证奇数和奇数,偶数和偶数之间的相对位置不变。
解法1
C++库函数partition:
bool IsOdd (const int iInNum){
return iInNum & 1;
}
void reOrderArray(vector<int> &array) {
std::partition(array.begin(),array.end(), IsOdd );
}
保持相对顺序
C++库函数实现stable_partition:
bool IsOdd (const int iInNum){
return iInNum & 1;
}
void reOrderArray(vector<int> &array) {
std::stable_partition(array.begin(),array.end(), IsOdd );
}