Java排列数组将数组中偶数放前面,奇数放后面,写了两种方法,主要是运算时范围不一样,为了简单,写了一个交换函数。
import java.util.Arrays;
public class SortArray{
public static void main(String[] args){
int[] a={2,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;
}
}