【微软谷歌面试100题--【54】调整数组顺序使奇数位于偶数前面
题54
调整数组顺序使奇数位于偶数前面。
题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,
所有偶数位于数组的后半部分。要求时间复杂度为O(n)。
public class Algorithm54_0 {public static void main(String[] args) {int a[]={7,8,2,4,59,6,1,45,52};int i=0,j=a.length-1;while(i<j){if((a[j]&1)==0) j--;//判断是否是奇数if((a[i]&1)!=0) i++;swap(a, i, j);i++;j--;}for(int aa:a){System.err.println(aa);}}static void swap(int a[],int i,int j){int temp=a[j];a[j]=a[i];a[i]=temp;}}