调整数组顺序使奇数位于偶数前面
面试题21 :输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 方法一:数组的引用作为实参O(N) class Solution { public : void reOrderArray ( vector < int > & array ) { //需要对数组进行修改,故数组引用组为形参 vector < int > result ; int length = array . size ( ) ; for ( int i = 0 ; i < length ; ++ i ) { if ( array [ i ] & 0x1 == 1 ) result . push_back ( array [ i ] ) ; } for ( int i = 0 ; i < length ; ++ i ) { if ( ( array [ i ] & 0x1 ) == 0 ) //(array[i] & 0x1)此处不加括号则报错 result . push_back ( array [ i ] ) ; } array = result ; } } ; 方法二:使用指针作为形参 class Solution { public : void reOrderArray ( int *