劍指Offer之調整陣列順序使奇數字於偶數前面

2021-09-01 20:40:47 字數 1589 閱讀 8285

//從右邊直到第乙個奇數

while(left < right && (number[right] % 2 == 0))

//奇偶數交換

if(left < right)

}}int main()

sortoddbeforeeven(number,n);

for(i = 0;i < n;i++)

else

}} return 0;

}題目描述:輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。

輸入:每個輸入檔案包含一組測試案例。

對於每個測試案例,第一行輸入乙個n,代表該陣列中數字的個數。

接下來的一行輸入n個整數。代表陣列中的n個數。

輸出:對應每個測試案例,

輸入一行n個數字,代表調整後的陣列。注意,數字和數字之間用乙個空格隔開,最後乙個數字後面沒有空格。

樣例輸入:

5

1 2 3 4 5

樣例輸出:

1 3 5 2 4

/*********************************

* 日期:2013-11-15

* 題號: 題目1516:調整陣列順序使奇數字於偶數前面

* 結果:ac

* 總結:

**********************************/

#include #include int *number;

void sortoddbeforeeven(int *number,int n)

int oindex = 0,eindex = 0,i;

int *odd,*even;

odd = (int *)malloc(sizeof(int)*n);

even = (int *)malloc(sizeof(int)*n);

//尋找奇偶數

for(i = 0;i < n;i++)

//偶數

else

}//輸出奇數

for(i = 0;i < oindex;i++)

else

}//輸出偶數

for(i = 0;i < eindex;i++)

else

}printf("\n");

}int main()

sortoddbeforeeven(number,n);

} return 0;

}

劍指offer 調整陣列順序

時間限制 1秒 空間限制 32768k 本題知識點 陣列 題目描述 輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。首先想到的是利用兩個輔助陣列,乙個儲存奇數,乙個儲存偶數,這樣的...

劍指offer(調整陣列順序)

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。1 暴力解法 從前到位掃瞄陣列,如果出現前面是偶數後面是奇數的情況,則交換。其中使用氣泡排序的思想。從後面朝前比較,使用外迴圈控制趟...

劍指offer十三之調整陣列順序使奇數字於偶數前面

一 題目 輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。二 思路 此題可以用類似氣泡排序的演算法來解答。遍歷陣列,當相鄰兩個數,前面的數是偶數,後面的數是奇數時,交換兩個數。...