给定一个非负整数数组 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;
}
}
本文介绍了一种基于数组的奇偶排序算法,通过遍历数组并根据元素的奇偶性进行交换,最终实现所有偶数元素位于奇数元素之前的目标。此算法类似于冒泡排序,但交换条件有所不同。
226

被折叠的 条评论
为什么被折叠?



