题目描述
给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。
你可以返回满足此条件的任何数组作为答案。
实现代码
1.暴力求解
class Solution {
public int[] sortArrayByParity(int[] A) {
for(int i = 0; i < A.length;i++){
if(A[i] % 2 != 0){
//奇数
int j = i + 1;
while(j < A.length && A[j] % 2 != 0){
j++;
}
if(j < A.length){
int temp = A[i];
A[i] = A[j];
A[j] = temp;
}
}
}
return A;
}
}
- 使用排序算法求解
class Solution {
public int[] sortArrayByParity(int[] A) {
Integer B[] = new Integer[A.length]; //创建一个数组B,大小与A相同
for(int i = 0; i < A.length; i++){
B[i] = A[i]; //将A中的数据放入B中
}
Arrays.sort(B,(a,b) -> Integer.compare(a % 2,b % 2));//使用Array.sort()进行排序后输出
for(int i = 0; i < A.length; i++){
A[i] = B[i];
}
return A;
}
}
- 两遍遍历
class Solution {
public int[] sortArrayByParity(int[] A) {
int B[] = new int[A.length];
int indix = 0;
for(int i = 0; i < A.length; i++){ //先遍历偶数
if(A[i] % 2 == 0){
B[indix ++] = A[i];
}
}
for(int i = 0; i < A.length; i++){ //再遍历奇数
if(A[i] % 2 != 0){
B[indix ++] = A[i];
}
}
return B;
}
}