码迷,mamicode.com
首页 > 其他好文 > 详细

剑指offer13

时间:2018-01-15 11:14:34      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:++   auth   剑指offer   bar   数组   length   int   标记   false   

/**  * 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,  * 使得所有的奇数位于数组的前半部分,所有的偶数位于位于数  * 组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位  * 置不变。  * @author user  *   */ public class ch13 { /*  * 遍历数组,遇到前偶后奇就交换,类似冒泡,感觉很笨重  */ public void reOrderArray(int[] array) { int tmp; for (int i = 0; i < array.length; i++) { for (int j = array.length - 1; j > 0; j--) { if(array[j] % 2 != 0 && array[j - 1] % 2 == 0) { tmp = array[j]; array[j] = array[j - 1]; array[j - 1] = tmp; } } } }
/*
	 * 首先找到第一个奇数,将它放到数组首位,该数前面的数,
	 * 统统向后移动一位
	 */
	public void reOrderArray2(int[] array) {
		int m = 0;//标记奇数的个数  
        for(int i=0;i<array.length;i++){  
            if(array[i]%2==1){//找到的奇数  
                m++;  
                if(i==0)  
                    continue;  
                int tmp = array[i];//记录奇数  
                int ti = i;  
                for(;ti>=m;ti--){  
                    array[ti] = array[ti-1];//奇数之前的所有元素往后移动一位  
                }  
                array[m-1] = tmp;  
            }  
        } 
	}
}


剑指offer13

标签:++   auth   剑指offer   bar   数组   length   int   标记   false   

原文地址:http://blog.51cto.com/12222886/2061001

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!