zoukankan      html  css  js  c++  java
  • 【编程题目】调整数组顺序使奇数位于偶数前面

    54.调整数组顺序使奇数位于偶数前面(数组)。
    题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,
    所有偶数位于数组的后半部分。要求时间复杂度为 O(n)。

    小题,秒灭。

    /*
    54.调整数组顺序使奇数位于偶数前面(数组)。
    题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,
    所有偶数位于数组的后半部分。要求时间复杂度为 O(n)。
    */
    
    #include <stdio.h>
    #include <algorithm>
    using namespace std;
    
    void oddfirst(int * in, int len)
    {
        int * p1 = in;
        int * p2 = in + len - 1;
        while(p1 < p2)
        {
            if((*p1) % 2 == 0 && (*p2) % 2 == 1)
            {
                swap(*p1, *p2);
                p1--;
                p2--;
            }
            else
            {
                if((*p1) % 2 == 1)
                    p1++;
                if((*p2) % 2 == 0)
                    p2--;
            }
            
        }
    }
    
    int main()
    {
        int a[20] = {1, 2, 3, 4,5 ,6 ,7,9,8};
        oddfirst(a, 9);
        return 0;
    }
  • 相关阅读:
    闭包 与 装饰器
    Linux常用命令 (二)
    day1 linux常用命令(一)
    📎 .xib
    📎 Emoji 前端转换
    📎 钉钉微应用( 新启项目Weex H5 )
    📎 ROR:常用GEM
    📎 AndroidNative【ING...】
    🆕 ror方法
    安装centos7
  • 原文地址:https://www.cnblogs.com/dplearning/p/3901269.html
Copyright © 2011-2022 走看看