给定一个非负整数数组 A
,返回一个数组,在该数组中, A
的所有偶数元素之后跟着所有奇数元素。
eg:输入:[3,1,2,4] 输出:[2,4,3,1]
解题思路:与冒泡排序有相似之处,不同的是内层循环的交换条件,若前一个为奇数后一个为偶数则交换。
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Solution s = new Solution();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int [] arr = new int [n];
for(int i=0;i<n;i++){
arr[i] = sc.nextInt();
}
s.sortArrayByParity(arr);
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
public int[] sortArrayByParity(int[] A) {
for (int i = 0; i < A.length; i++) {
for(int j=0;j<A.length-1;j++){
if (A[j] % 2 != 0 && A[j+1] % 2 == 0) {
int tmp = A[j+1];
A[j+1] = A[j];
A[j] = tmp;
}
}
}
return A;
}
}