//要求:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变
//思路:这个比较简单。首先遍历一次原数组,分别用两个数组把里面的奇数和偶数给提取出来,按顺序存放在两个数组里。之后将奇数数组和偶数数组按顺序分别输入到新数组中即可。
import java.util.ArrayList;
import java.util.Stack;
public class 调整数组顺序使奇数位于偶数前面{
public static void reOrderArray(int [] array) {
ArrayList<Integer> oddList=new ArrayList<Integer>();
ArrayList<Integer> evenList=new ArrayList<Integer>();
for(int i=0;i<array.length;i++){
if(judgeEven(array[i]))
evenList.add(array[i]);
else
oddList.add(array[i]);
}
for(int i=0;i<array.length;i++){
int oddSize=oddList.size();
for(int j=0;j<oddSize;j++){
array[j]=oddList.get(j);
}
for(int j=oddSize;j<array.length;j++){
array[j]=evenList.get(j-oddSize);
}
}
}
public static boolean judgeEven(int num){
return num%2==0;
}
public static void main(String[] args)
{
int[] arr=new int[]{1,4,5,2,3,7,8};
reOrderArray(arr);
for(int i:arr){
System.out.print(i+",");
}
}
}