剑指offer-调整数组顺序使奇数位于偶数前面

2016/05/24 C和C++基础

题目描述

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

#include <iostream>
#include <vector>
using namespace std;

void reOrderArray(vector<int> &array1){
	int s=array1.size();
	vector<int> v1;
	vector<int> v2;
	for(int i=0;i<s;i++){
		int num=array1.back();
		if(num%2==0)
			v1.push_back(num);
		else
			v2.push_back(num);
		array1.pop_back();
	}
	while(!v2.empty()){
		int num=v2.back();
		array1.push_back(num);
		v2.pop_back();
	}
	while(!v1.empty()){
		int num=v1.back();
		array1.push_back(num);
		v1.pop_back();
	}
}

int main(){
	int a[9]={1,2,3,4,5,6,7,8,9};
	vector<int> arr(a,a+9);
	reOrderArray(arr);
	system("pause");
}

Search

    Post Directory