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

// test14.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>
#include<string>
#include<cctype>
#include <vector>
#include<exception>
#include <initializer_list>
using namespace std;
string a[10];

class Solution {
public:
	void reOrderArray(vector<int> &array) {
		int  oddNum = 0;
		int evenNum = 0;
		vector<int> odd;
		vector<int> even;

		for (auto it : array)//统计奇数和偶数个数
		{
			if (it % 2 == 0) { evenNum++; even.push_back(it); }
			else { oddNum++; odd.push_back(it); }
		}
		array.clear();//清空array

		for (auto it : odd) array.push_back(it);
		for (auto it : even) array.push_back(it);
		
		//cout << "统计结果是:" << endl;
		//for (auto it : array)//验证统计结果
		//{
		//	cout << it << " ";
		//}
	}
};

int main()
{
	vector<int> array;
	Solution so;
	int num;
	
	while (cin>>num)
	{
		array.push_back(num);
		if (getchar() == '\n')
			break;
	}
	so.reOrderArray(array);
	
	return 0;
}
posted @ 2016-09-29 16:00  wdan2016  阅读(956)  评论(0编辑  收藏  举报