Java语言将数组中的偶数放在前面,奇数放在后面,通过函数返回,这个怎么写?

Java语言将数组中的偶数放在前面,奇数放在后面,通过函数返回,这个怎么写?
Java语言将数组中的偶数放在前面,奇数放在后面,通过函数返回,这个怎么写?

可以写一个排序算法,依次比对两个数,若左偶右奇不做处理,若左奇右偶则互换位置

给你推荐两种方法 也推荐你看一下我的博客 觉得好的话可以点个赞哦

package com.guli.edu;

import java.util.Arrays;

public class SortArray {
    public static void main(String[] args) {
        int[] a = {20, 9, 4, 5, 7, 1, 3, 8, 6, 10};
        System.out.println(Arrays.toString(sortArrayByParity1(a)));
        System.out.println(Arrays.toString(sortArrayByParity2(a)));
    }

    public static void swap(int[] nums, int i, int j) {//交换函数
        int tmp = nums[i];
        nums[i] = nums[j];
        nums[j] = tmp;
    }


    //偶数放前面,奇数放后面
    //第一种方法,[begin,end)
    public static int[] sortArrayByParity1(int[] nums) {
        int begin = 0;
        int end = nums.length - 1;
        while (begin < end) {
            while (begin < end && nums[begin] % 2 == 0) {
                begin++;
            }
            while (begin < end && nums[end] % 2 != 0) {
                end--;
            }
            swap(nums, begin, end);
        }
        return nums;
    }

    //第二种方法[0,jishu),[jishu,i),[i,nums.length)
    public static int[] sortArrayByParity2(int[] nums) {
        int jishu = 0; 
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] % 2 == 0) {
                swap(nums, jishu, i);
                jishu++;
            }
        }
        return nums;
    }

}