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

  • 相关阅读:
    移动端--基于Android Studio的项目文件结构(一)【转】
    java知识体系粗略梳理
    简单的使用hibernate插入数据的例子
    触发器
    存储过程和函数
    视图
    索引的设计和使用
    数据类型的选择
    表类型(存储引擎)的选择
    MySQL中的常用函数
  • 原文地址:https://www.cnblogs.com/hesper/p/10434937.html
Copyright © 2011-2022 走看看