LeetCode

按奇偶排序数组

2019-05-28  本文已影响0人  习惯了_就好

给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。

你可以返回满足此条件的任何数组作为答案。

示例:

输入:[3,1,2,4]
输出:[2,4,3,1]
输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。

提示:

1 <= A.length <= 5000
0 <= A[i] <= 5000
class Solution {
    public int[] sortArrayByParity(int[] A) {
        quickSort(A,0,A.length-1);
        return A;
        
    }
    
    //仿快速排序
    private void quickSort(int[] A, int _left,int _right){
        int left = _left;
        int right = _right;
        
        if(left <= right){
            int temp = A[left];
            
            while(left != right){
                
                while(left < right && A[right] % 2 != 0){
                    right--;
                }
                
                A[left] = A[right];
                while(left < right && A[left] % 2 == 0){
                    left++;
                }
                A[right] = A[left];
            }
            
            A[left] = temp;
            
            quickSort(A, _left ,left-1);
            quickSort(A, left + 1 ,_right);
        }
        
    }
}

上一篇下一篇

猜你喜欢

热点阅读