陣列中元素排列為奇數在前偶數在後
阿新 • • 發佈:2019-01-09
處理流程如下圖所示。
對於用例: 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) //從後往前找奇數
if(front<end)
{
int swap = a[end]; //將奇數往前挪,偶數往後挪
a[front] = a[end];
a[end] = swap;
}
}