zoukankan      html  css  js  c++  java
  • 将一个数组中的奇元素全部移到数组的前半部分,即将奇偶元素分开

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

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

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

    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;   
    }  
    
    
  • 相关阅读:
    【SAS NOTE】OUTPUT
    【SAS NOTES】_NULL_
    【SAS NOTE】sas 9.2 安装
    【SAS NOTE】FREQ
    纯数学教程 Page 203 例XLI (1)
    纯数学教程 Page 203 例XLI (3)
    纯数学教程 Page 203 例XLI (2)
    Prove Cauchy's inequality by induction
    纯数学教程 Page 325 例LXVIII (15) 调和级数发散
    纯数学教程 Page 325 例LXVIII (15) 调和级数发散
  • 原文地址:https://www.cnblogs.com/heyonggang/p/3308360.html
Copyright © 2011-2022 走看看