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

  输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。


解析:
  类似大元素下沉的冒泡排序:前后两两相比较,前偶后奇则调换位置,每趟排序一个偶数沉底。
  (不能使用小数/奇数上浮的冒泡排序,它无法保证偶数的相对位置保持不变。)
  
代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Solution {
public void reOrderArray(int [] array) {
for(int i=array.length-1; i>0; i--){
for(int j=0; j<i; j++){
if((array[j]%2==0)&&(array[j+1]%2==1)){
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
}
}

---------------- The End ----------------
0%