`

调整数组顺序使奇数位于偶数前面

 
阅读更多
调整数组顺序使奇数位于偶数前面。

题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,

所有偶数位于数组的后半部分。要求时间复杂度为O(n)。

/**
	 * 
	 *@User   :Test
	 *@date   :2014-6-10 下午04:31:03
	 *@return :void
	 *@userFor : 调整数组顺序使奇数位于偶数前面。
	 */
	private static void transferArray()
	{
		int intArr[] = {1,2,3,4,5,6,7,8,9,8};
		
		int i = 0 , j = intArr.length-1 ,temp;
		boolean i_odd = false , j_even = false ;
		while(i<j)
		{
			//判断是否是偶数
			i_odd = intArr[i]%2==0 ;
			//判断是否是奇数
			j_even = intArr[j]%2!=0  ;
			//如果是奇数
			if (!i_odd)  
			{
				 ++i; 
			}
			//如果是偶数
	        if (!j_even)
	        {
	        	--j; 
	        }
	        if(i_odd && j_even)
	        {
	        	temp = intArr[i] ;
	        	intArr[i] = intArr[j] ;
	        	intArr[j] = temp ;
	        }
		}
		
		for(int v:intArr)
		{
			System.out.print(v+" ");
		}
	}
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics