数组奇偶分离算法,时间复杂度O(n),空间复杂度O(1)。

前几天面试问到的,当时没有反应过来。回来想想还是很简单的=。=

C++code如下

int* separate(int* iArray,int length)

{

    int front=0;

   int back=length-1;

   while(front<back)

   {

         if((iArray[front]&1)==0)

         {

               if(!((iArray[back]&1)==0))

               {

                     int temp=iArray[back];

                     iArray[back]=iArray[front];

                     iArray[front]=temp;front++;back--;

              }else back--;

          }else front++;

     }

    return iArray;

}


你可能感兴趣的:(数组奇偶分离算法,时间复杂度O(n),空间复杂度O(1)。)