【微软谷歌面试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;
	}
}


你可能感兴趣的:(Algorithm,String,面试,Class,微软)