调整数组顺序使奇数位于偶数前面(二):最直观的想法是,双指针。使用变量i指向奇数,初始为0,使用变量j指向偶数,初始为n-1,当i小于j时执行循环,首先找到左边第一个偶数,再找到右边第一个奇数,然后交换两者,并将指针向内收缩。

vector<int> reOrderArrayTwo(vector<int>& array) 
{
   int n=array.size();
   // i指向左边部分
   int i=0;
   // j指向右边部分
   int j=n-1;
   while(i<j)
   {
      // 左边奇数 找到第一个偶数
      while(array[i]%2!=0)
         i++;
      // 右边偶数 找到第一个奇数
      while(array[j]%2==0)
         j--;
      // 交换两者
      if(i<j)
      {
         swap(array[i],array[j]);
         i++;
         j--;
      }
    }
    return array;
}