方法1
定义两个下标,left,right,左边找奇数,右边找偶数,奇数与偶数交换即可。
import java.util.Arrays;
import java.util.Scanner;
public class Exercise {
public static void sort(int []arr){
int left=0;
int right=arr.length-1;
while(left<right){
while(arr[left]%2==0&&left<right)
left++;
while(arr[right]%2!=0&&left<right)
right--;
int t=arr[left];
arr[left]=arr[right];
arr[right]=t;
}
return ;
}
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int []a={1,5,3,7,8,2};
sort(a);
System.out.println(Arrays.toString(a));
}
}
方法2
设定两个变量,i,j,都指向数组起始位置,i开始遍历数组,当i指定的数组为偶数时,i,j所指向的数组交换,j加加。直到i遍历完数组。
import java.util.Arrays;
import java.util.Scanner;
public class Exercise {
public static void sort(int []arr){
int j=0;
for(int i=0;i<arr.length;i++){
if(arr[i]%2==0){
int t=arr[i];
arr[i]=arr[j];
arr[j]=t;
j++;
}
}
return ;
}
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int []a={1,5,3,7,8,2};
sort(a);
System.out.println(Arrays.toString(a));
}
}