码迷,mamicode.com
首页 > 编程语言 > 详细

华为机试—元素按奇偶排序

时间:2015-05-12 11:26:49      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:华为机试   元素按奇偶排序   

题目:

将数组中偶数从大到小排序,奇数从小到大排序,奇数和偶数交叉着放且输出数组第一位放奇数 若奇数和偶数不等长,则把剩下的直接放到数组中。

#include <iostream>
#include <string>
#define len 11
using namespace std;

int cmp(const void *p,const void *q)
{
	return *(int *)p-*(int *)q;
}

int cmp2(const void *p,const void *q)
{
	return *(int *)q-*(int *)p;
}

int main()
{
	int a[]={2,1,4,3,6,5,9,8,7,0,111};

	int arryJi[len];
	int arryOu[len];

	int i=0,j=0,k;
	for(k=0;k<len;k++)
	{
		if(a[k]%2==0)
			arryOu[j++]=a[k];
		else
			arryJi[i++]=a[k];
	}

	qsort(arryJi,i,sizeof(int),cmp);
	qsort(arryOu,j,sizeof(int),cmp2);

	int result[len],flag=0;
	k=0;
	int ii=0,jj=0;
		
	while(ii<i && jj<j)
	{
		if(!flag)
		{
			result[k++]=arryJi[ii++];
			flag=1;
		}
		else
		{
			result[k++]=arryOu[jj++];
			flag=0;
		}		
	}

	while(ii<i)
	{
		result[k++]=arryJi[ii++];
	}

	while(jj<j)
	{
		result[k++]=arryOu[jj++];
	}

	for(i=0;i<len;i++)
		cout<<result[i]<<" ";

	cout<<endl;
	return 0;
}

技术分享

华为机试—元素按奇偶排序

标签:华为机试   元素按奇偶排序   

原文地址:http://blog.csdn.net/wtyvhreal/article/details/45665943

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!