题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
package offer;
public class ReorderOddEven {
public static void main(String[] args) {
int[] arr = {4,3,5,6,9,10,12};
reorderOddEven(arr);
}
public static void reorderOddEven(int[] arr){
if(arr==null)return;
int i=0,j=arr.length-1;
while(i<j){
while(i<=arr.length-1&&(arr[i]&0x1)!=0)i++;
while(j>=0&&(arr[j]&0x1)==0)j--;
if(i<j){
swap(arr,i,j);
}
}
print(arr);
}
public static void swap(int[] arr, int i, int j){
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
public static void print(int[] arr){
for(int i=0; i<arr.length; i++)
System.out.print(arr[i]+" ");
}
}