1. 程式人生 > >陣列中元素排列為奇數在前偶數在後

陣列中元素排列為奇數在前偶數在後

處理流程如下圖所示。

對於用例:   1,2,4,5,3

處理結果為:1,3,5,4,2


//將陣列a中奇數放在前面,偶數放在後面

-(void)swapArray:(int[])a

{

    int len = sizeof(&a)/sizeof(int);

    if(len <= 0)    //陣列長度為0則返回

        return ;

    int front = 0, end = len-1;//設定兩個指標,一個指向頭部,一個指向尾部

    while(front<end)

    {

        while(front<len && (a[front]&1)==1)    //從前往後找偶數

            front++;

        while(end>=0 && (a[end]&1)==0)    //從後往前找奇數

           

end--;

        if(front<end)

        {

            int swap = a[end];    //將奇數往前挪,偶數往後挪

            a[front] = a[end];

            a[end] = swap;

       

}

    }

}