华为机试:元素按奇偶排序
2014-09-18 20:44
169 查看
将数组中偶数从大到小排序,奇数从小到大排序,奇数和偶数交叉着放且输出数组第一位放奇数
若奇数和偶数不等长,则把剩下的直接放到数组中。
#include <iostream>
#include <algorithm>
using namespace std;
bool cmp(int a,int b)
{
return a>b;
}
void sort_arr(int arr1[],int len1,int arr2[])
{
int temp1[256]={0};
int temp2[256]={0};
int p=0,q=0;
for(int i=0;i<len1;i++)
{
if(arr1[i]%2==1)
temp1[p++]=arr1[i];
else
temp2[q++]=arr1[i];
}
sort(temp1,temp1+p);
sort(temp2,temp2+q,cmp);
int k=(p<q)?p:q;
int j=0;
int i;
for(i=0;i<k;i++)
{
arr2[j++]=temp1[i];
arr2[j++]=temp2[i];
}
if(i==p)
{
while(i<q)
{
arr2[j++]=temp2[i];
i++;
}
}
else
{
while(i<p)
{
arr2[j++]=temp2[i];
i++;
}
}
}
int main()
{
int input[256]={0};
int output[256]={0};
int a,k=0,b,l=0;
cin>>a;
while(getchar()!='\n')
{
input[k++]=a;
cin>>a;
}
input[k++]=a;
sort_arr(input,k,output);
for(int i=0;i<k;i++)
cout<<output[i]<<' ';
cout<<endl;
return 0;
}
若奇数和偶数不等长,则把剩下的直接放到数组中。
#include <iostream>
#include <algorithm>
using namespace std;
bool cmp(int a,int b)
{
return a>b;
}
void sort_arr(int arr1[],int len1,int arr2[])
{
int temp1[256]={0};
int temp2[256]={0};
int p=0,q=0;
for(int i=0;i<len1;i++)
{
if(arr1[i]%2==1)
temp1[p++]=arr1[i];
else
temp2[q++]=arr1[i];
}
sort(temp1,temp1+p);
sort(temp2,temp2+q,cmp);
int k=(p<q)?p:q;
int j=0;
int i;
for(i=0;i<k;i++)
{
arr2[j++]=temp1[i];
arr2[j++]=temp2[i];
}
if(i==p)
{
while(i<q)
{
arr2[j++]=temp2[i];
i++;
}
}
else
{
while(i<p)
{
arr2[j++]=temp2[i];
i++;
}
}
}
int main()
{
int input[256]={0};
int output[256]={0};
int a,k=0,b,l=0;
cin>>a;
while(getchar()!='\n')
{
input[k++]=a;
cin>>a;
}
input[k++]=a;
sort_arr(input,k,output);
for(int i=0;i<k;i++)
cout<<output[i]<<' ';
cout<<endl;
return 0;
}
相关文章推荐
- 华为机试—元素按奇偶排序
- 华为机试—元素按奇偶排序 (金字塔)
- 华为机试—元素按奇偶排序
- 华为机试-元素按奇偶排序
- 华为机试---矩阵元素相乘
- 华为机试——数字奇偶排序
- 华为招聘机试整理2:判断一个数组的元素是否是回文
- 华为机试—整型数组中出现次数最多的元素
- 华为机试—整型数组中出现次数最多的元素
- 华为机试:元素异同比较
- 华为机试:元素按大小排序
- 华为机试——找出一个数组中满足2^n的元素个数
- 华为机试—元素异同比较
- 地铁换乘(华为机试样题)
- 华为机试—5张扑克牌的组成
- [华为机试练习题]5.IP地址判断有效性
- 华为机试——垃圾短信识别
- [华为机试练习题]39.尼科彻斯定理
- 华为机试 题目2 - 字符串过滤
- [华为机试练习题]55.最大公约数 & 多个数的最大公约数