劍指Offer學習-面試題21:調整數值順序使奇數位於偶數前面

	/**
     * 調整數值順序使奇數位於偶數前面
     *
     * @param arr
     */
    public void reorderOddEven(int[] arr) {
        if (null == arr || arr.length < 2) {
            return;
        }
        int left = 0;
        int right = arr.length;

        while (left < right) {
            if (isEven(arr[left])) {
                swap(left, --right, arr);
            } else {
                left++;
            }
        }
    }

    private void swap(int l, int r, int[] arr) {
        int t = arr[l];
        arr[l] = arr[r];
        arr[r] = t;
    }

    private boolean isEven(int n) {
        return (n & 1) == 0;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章