重新调整数组的顺序是奇数位于偶数的前面

来源:互联网 发布:js怎么访问局部变量 编辑:程序博客网 时间:2024/06/07 02:44

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

思路:
从前向后遍历,先找出第一个偶数;
然后以这个偶数为基准,向后找出奇数,插入到这个偶数的前面

class Solution {public:    void reOrderArray(vector<int> &array) {        if(array.empty())            return;        int i=0;        while(i<array.size()){            //找第一个偶数,作为基准            while(i<array.size() && array[i]%2!=0)                i++;            int j=i+1;            //找第一个奇数            while(j<array.size() && array[j]%2==0)                j++;            if(j<array.size()){                int num=array[j];                for(int k=j-1;k>=i;k--)                    array[k+1]=array[k];                array[i]=num;            }            else                break;        }    }};
阅读全文
0 0
原创粉丝点击