牛客网-调整数组顺序使奇数位于偶数前面

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

class Solution {
public:
    void reOrderArray(vector<int> &array) {
        int position = 0;
        int length=array.size();
        for (int i = 0; i < length; i++)
        {
            if ((array[i]%2)==0)
            {
                position = i;//找出第一个偶数的位置
                break;
            }
        }
        for (int i = position; i < length; i++)
        {
            if ((array[i]%2)!=0)//如果是奇数,则插入
            {
                int temp = array[i];//插入排序
                for (int j = i; j > position; j--)
                {
                    array[j] = array[j - 1];
                }
                array[position] = temp;
                position++;//注意,每次插入后第一个偶数的位置后移了一位
            }
        }
    }
};

猜你喜欢

转载自blog.csdn.net/Namcodream521/article/details/82291956
今日推荐