zoukankan      html  css  js  c++  java
  • 调整数组顺序使奇数位于偶数前面

    调整数组顺序使奇数位于偶数前面

    题目描述

    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

    版本一: 利用插入排序, 所不同的是多一个if条件判断

    class Solution {
    public:
        void reOrderArray(vector<int> &array) {
            int inner = 0;
            int outer = 0;
            long temp = 0;
            
            if (array.empty()) {
                return;
            }
            
            for (outer = 1; outer < array.size(); outer++) {
    			//if ((array[outer] + 1) % 2) { 	// 最开始写成这个版本了, 见下图
                if ((array[outer]) % 2) {
                    temp = array[outer];
                    inner = outer;
                    while ((inner > 0) && (0 == array[inner - 1] % 2)) {
                        array[inner] = array[inner - 1];
                        inner--;
                    }
                    array[inner] = temp;
                }
            }
        }
    };
    

    版本二: 条件判断拓展, 剑指offer中的条件拓展, 奇偶判断是亮点

    class Solution {
    public:
        bool isEven(int number) {
            return  (number & 1) == 0;
        }
        
        void reOrderArray(vector<int> &array) {
            int inner = 0;
            int outer = 0;
            long temp = 0;
            
            if (array.empty()) {
                return;
            }
            
            for (outer = 1; outer < array.size(); outer++) {
                if (! isEven(array[outer])) {
                    temp = array[outer];
                    inner = outer;
                    while ((inner > 0) && isEven(array[inner-1])) {
                        array[inner] = array[inner - 1];
                        inner--;
                    }
                    array[inner] = temp;
                }
            }
        }
    };
    

  • 相关阅读:
    《当程序员的那些狗日日子》(二十六)再下决心
    创建本地数据库
    Servlet的开发和使用
    tomcat7不能创建解决办法
    windows系统纯净版下载
    Linux打包命令
    Filter的开发和使用
    C语言地址传递和值传递简析
    Servlet生命周期
    Java EE架构
  • 原文地址:https://www.cnblogs.com/hesper/p/10434937.html
Copyright © 2011-2022 走看看