1. 程式人生 > >劍指offer十三之調整數組順序使奇數位於偶數前面

劍指offer十三之調整數組順序使奇數位於偶數前面

emp i++ temp logs [] 數字 奇數位於偶數前面 順序 .com

一、題目

  輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位於數組的前半部分,所有的偶數位於位於數組的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。

二、思路

此題可以用類似冒泡排序的算法來解答。遍歷數組,當相鄰兩個數,前面的數是偶數,後面的數是奇數時,交換兩個數。第一輪遍歷下來,數組最後面的一個偶數就排好了,接著進行第二輪第三輪,直到所有偶數都排到奇數後面為止。

三、代碼

技術分享
public class Solution {
    public void reOrderArray(int [] array) {
         int temp = 0;
        
for (int i = 0; i < array.length - 1; i++) { for (int j = 0; j < array.length - 1-i; j++) { if ((array[j] % 2 == 0) && (array[j + 1] % 2) != 0) { //前偶後奇則交換 temp = array[j]; array[j] = array[j + 1]; array[j
+ 1] = temp; } } } } }
View Code

-------------------------------------------------------------------------------------------------------------

參考鏈接:https://www.nowcoder.com/profile/369342/codeBookDetail?submissionId=1523408

劍指offer十三之調整數組順序使奇數位於偶數前面