您的位置:首页 > 其它

将一个数组中的奇元素全部移到数组的前半部分,即将奇偶元素分开

2013-07-16 21:12 302 查看
将一个数组中的奇元素全部移到数组的前半部分,即将奇偶元素分开?

需要调整元素的顺序。先判断数组中的一个元素的奇偶性,如为奇数就往后移。

如何判断一个元素的奇偶性?

//判断元素的奇偶性
bool isEven(int data)
{
	return((data & 1) == 0 ? true : false);
}


测试如下:

#include<stdio.h>

//判断元素的奇偶性 bool isEven(int data) { return((data & 1) == 0 ? true : false); }

int main()
{
int i = 3;
if(isEven(i))
{
printf("i is even");
}
else
printf("i is not odd");

return 0;
}


实现代码如下:

#include<iostream>
using namespace std;

//判断元素的奇偶性 bool isEven(int data) { return((data & 1) == 0 ? true : false); }

void reOrder(int *data , int len)
{
int *left = data;
int *right = data + len - 1;
int temp = 0;
while(left < right)
{
if(!isEven(*left)) //如果左边为奇数
{
left++;
continue;
}

if(isEven(*right)) //如果右边为偶数
{
right--;
continue;
}

temp = *left;
*left = *right;
*right = temp;

left++;
right--;
}
}

int main()
{
int data[] = {2 , 5 , 4 , 9 , 6 , 4};
int len = sizeof(data)/sizeof(int);
reOrder(data , len);
for(int i = 0 ; i < len ; i++)
{
cout<<data[i]<<" ";
}
cout<<endl;

system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐