题目要求很简单,就是给你一个数组,对它进行排序,并且排序后,奇数要放在奇数的位置上,偶数要放在偶数的位置上,如果不满足这个规则的话就在数组上填充0
实现代码如下,文中值得注意的一点就是如何判读这个数字是奇数或者偶数,我想使用位运算是最快速的方法了。
// test_huawei.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include using namespace std;#define T 10int _tmain(int argc, _TCHAR* argv[]){ //实现奇数放在奇数的位置上 偶数放在偶数位置上 如果不是 添0 int a[T]={ 1,2,23,1,23,32,56,9,21,33}; int b[2*T]={ 0}; //考虑最坏情况 新的数组应该是原数组的两倍大(严格来说是2T-1) int i,j,temp; for (i=0;i a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; //冒泡排序 } } } j=0; for (i=0;i
执行效果: