将一个数组中的奇元素全部移到数组的前半部分,即将奇偶元素分开
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;
}
相关文章推荐
- 将一个数组中的奇元素全部移到数组的前半部分,即将奇偶元素分开
- 将一个数组中的奇元素全部移到数组的前半部分,即将奇偶元素分开
- 调整数组使奇数全部都位于偶数前面。 题目: 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
- 输出一个一维数组中的最大值、最小值、全部元素的和,并将此数组中的值按逆序重新存放
- 函数调用输出一个一维数组中的最大值、最小值、全部元素的和,并将此数组中的值按逆序重新存放。
- 实现一个数组中奇数和偶数分开,奇数在前部分,偶数在后部分 时间复杂度为O(n),空间复杂度为O(1)
- Linux下利用json-c从一个json数组中提取每一个元素中的部分字段组成一个新json数组
- //1.调整数组使奇数全部都位于偶数前面。 //题目: //输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
- 一个数组有除了两个元素只出现一次,其他元素全部都出现了两次,请找出只出现一次的两个元素,并输出
- 输出一个一维数组中的最大值、最小值、全部元素的和,并将此数组中的值按逆序重新存放。例如原先a[0]~a[4]存放2 8 7 5 3,逆序存放后 a[0]~a[4]变为存放3 5 7 8 2
- 1、使用快速枚举语法实现: //构建一个NSSMutableArray数组,用@”1”至@”100”进行填充。以NSLog依次打印数组中的内容,将此数组分为奇偶两数组,再打印两新数组中的元素。
- js 获取一个数组中的部分元素
- 调整数组使奇数全部都位于偶数前面。 题目: 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
- 有一个整型数组a,有10个元素,要求输出数组中的全部元素。(通过指针引用)
- List的All方法使用问题:我用List1的All方法来确保List1的所有每个数组元素中是否包含Arr1中的任意元素,这个部分很难实现。 因为,没有一个数组中是否包含另一个数组中的任意元素这个功能
- 第十四周项目一数组大折腾(4)创建一个长度为16的整形数组a并初始化,删除数组中所有能被3整除的元素(数组中实际有效使用的元素将不足16),输出删除后数组中的全部元素
- 【原创】将一个数组中的0元素全部排到数组的右边,其他元素相对顺序保持不变。
- C语言 有一个整形数组a,有10个元素,要求输出数组中的全部元素
- 面试题:一个整型数组中各元素排列组合得到的最大的一个数 ,比如,1,3,9,11,23,233,911 要得到:9,911,3,233,23,11,1
- 数组:调整一个数组,把奇数放在前半部分,偶数在后半部分