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

简介: 将一个数组中的奇元素全部移到数组的前半部分,即将奇偶元素分开? 需要调整元素的顺序。先判断数组中的一个元素的奇偶性,如为奇数就往后移。 如何判断一个元素的奇偶性? [cpp] view plaincopy //判断元素的奇偶性   bool isEven(int data...

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

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

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

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


测试如下:

  1. #include<stdio.h>  
  2.   
  3. //判断元素的奇偶性  
  4. bool isEven(int data)  
  5. {  
  6.     return((data & 1) == 0 ? true : false);  
  7. }  
  8.   
  9. int main()  
  10. {  
  11.     int i = 3;  
  12.     if(isEven(i))  
  13.     {  
  14.         printf("i is even");  
  15.     }  
  16.     else  
  17.         printf("i is not odd");  
  18.   
  19.     return 0;  
  20. }  


实现代码如下:

#include<iostream>   
using namespace std;   
   
//判断元素的奇偶性   
bool isEven(int data)   
{   
    return((data & 1) == 0 ? true : false);   
}   
   
void reOrder(int *data , int len)   
{ 
	if(data == NULL || len == 0)
		return;

    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;   
}  

 

img_e00999465d1c2c1b02df587a3ec9c13d.jpg
微信公众号: 猿人谷
如果您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】
如果您希望与我交流互动,欢迎关注微信公众号
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

相关文章
|
编解码 运维 监控
4.1 钉钉宜搭大屏介绍|学习笔记
快速学习4.1 钉钉宜搭大屏介绍
4.1 钉钉宜搭大屏介绍|学习笔记
|
前端开发 JavaScript Android开发
React Native 快速入门简直太棒啦!构建跨平台移动应用的捷径,带你开启高效开发之旅!
【8月更文挑战第31天】React Native凭借其跨平台特性、丰富的生态系统及优异性能,成为移动应用开发的热门选择。它允许使用JavaScript和React语法编写一次代码即可在iOS和Android上运行,显著提升开发效率。此外,基于React框架的组件化开发模式使得代码更加易于维护与复用,加之活跃的社区支持与第三方库资源,加速了应用开发流程。尽管作为跨平台框架,React Native在性能上却不输原生应用,支持原生代码优化以实现高效渲染与功能定制。对于开发者而言,React Native简化了移动应用开发流程,是快速构建高质量应用的理想之选。
293 1
|
SQL 存储 监控
tidb
tidb 练习
2163 0
|
缓存 运维 前端开发
大淘宝技术行业FaaS化实战经验分享
本文将分享我们在FaaS化过程中的经验,尝试回答关于FaaS的Why、What、How三个问题,给对FaaS有兴趣的同学提供一些实践经验。
1412 0
大淘宝技术行业FaaS化实战经验分享
|
XML 缓存 安全
Spring——AOP基本概念的理解
Spring——AOP基本概念的理解
Spring——AOP基本概念的理解
|
弹性计算 算法 调度
阿里云服务器共享型s6和通用算力u1怎么选择?有什么区别?
阿里云服务器ECS共享型s6实例和通用算力型u1云服务器有什么区别?如何选择?阿里云百科以2核4G配置的云服务器u1和云服务器s6实例为例,来详细对比下二者的CPU处理器、网络带宽、网络收发包PPS等性能参数:
1077 0
阿里云服务器共享型s6和通用算力u1怎么选择?有什么区别?
|
Linux
linux命令之wget下载
wget 是一个下载文件的工具。
1286 1
|
算法 Java 数据库
过关斩将-终获阿里offer
春招暑期实习,目标岗位Java后台开发,成功斩获阿里云/腾讯云/美团offer,圆梦阿里~
3139 0
过关斩将-终获阿里offer
|
供应链 大数据 Serverless
行业前瞻丨张勇:阿里巴巴的3大增长引擎和11大重要战略机遇
阿里巴巴CEO张勇提出,数字化是巨大的历史发展机遇,阿里巴巴在其中正处于最佳位置。在内需、云计算大数据和全球化三大增长引擎中,蕴含着未来三到五年内11大战略机遇。阿里巴巴将继续坚守“让天下没有难做的生意”的使命,计划到2036年能够服务全球20亿的消费者,创造1亿的就业机会,帮助1000万中小企业盈利。
行业前瞻丨张勇:阿里巴巴的3大增长引擎和11大重要战略机遇

热门文章

最新文章