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

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

    思路:改编快排,为保证奇偶相对位置不变,每当发现奇数且偶数在前时,保存奇数值,将偶数到奇数之前的元素顺序后移。

        void reOrderArray(vector<int> &array) {
            int j=0;
            for(int i=0;i<array.size();i++)
            {
                //i表示奇数位置,j表示偶数位置
                if((array[i]%2)!=0)
                {
                    if(i>j)
                    {
                        int k=i;
                        int temp=array[i];
                        while(k>j)
                        {
                            array[k]=array[k-1];
                            k--;
                        }
                        array[k]=temp;
                        //j++;
                    }
                    j++;
                }
            }
        }

  • 相关阅读:
    Java面试:用set集合的时候,重写过hashcode()和equal()方法吗?有什么作用?
    Bootstrap起步
    Java NIO
    Dobbo和SpringCloud区别
    Java虚拟机类加载机制和双亲委派模型
    继承和组合的特点和区别
    LinkedList和ArrayList底层原理
    聚集索引和非聚集索引
    Stream和迭代器的区别
    悲观锁和乐观锁
  • 原文地址:https://www.cnblogs.com/trouble-easy/p/12962140.html
Copyright © 2011-2022 走看看