注:博文转载自:https://blog.csdn.net/tanjie_123/article/details/53055723
##一、问题描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
##二、算法分析
给定一个数组array
目标:调整数组中元素顺序,使得奇数在前,偶数在后,同时奇数区和偶数区元素相对于原数组顺序不变
例如,array = {1,2,3,4,5,6}
调整后,array’ = {1,3,4,2,4,6}
可以采用类似于冒泡法思想求解,如果相邻两个元素是前偶后奇则交换顺序,经过多趟调整,可使整个数组为前奇后偶,又因为冒泡排序具有稳定性,因此调整后的奇数区和偶数区相对原数组顺序不变
##三、代码实现(Java)
public void reOrderArray(int [] array) {
/**
* 算法思路:
* 采用冒泡法思想,只要遇到前偶后奇则交换
*/
int temp;
for(int i=0;i<array.length; i++){
for(int j=0; j<array.length-i-1; j++){
if(array[j]%2==0 && array[j+1]%2==1){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
}