[劍指offer] 13. 調整數組順序使奇數位於偶數前面


題目描述

輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位於數組的前半部分,所有的偶數位於數組的后半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。
思路:
用一個curIndex變量來存儲,當前已遍歷元素中最靠右的奇數的索引。
遍歷時,遇到奇數,就將該奇數不斷與前一個交換直到curIndex+1。
class Solution
{
public:
  void reOrderArray(vector<int> &array)
  {
    int curIndex = 0;

    for (int i = 0; i < array.size(); i++)
    {
      if (array[i] % 2 == 1)
      {

        for (int k = i; k > curIndex; k--)
        {
          swap(array[k], array[k - 1]);
        }

        curIndex++;
      }
    }
  }
};

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com