输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
思路
先遍历数组,当遇到偶数时,设置一个j,从i后开始遍历直到遇到奇数,将i到j的数字往后移,将j位的数字放在i位上
Java
public class Solution {
public void reOrderArray(int [] array) {
for (int i = 0; i < array.length - 1; i++) {
for (int j = 0; j < array.length - 1 - i; j++) {
if (array[j] % 2 == 0 && array[j+1] % 2 != 0) {
int tmp = array[j];
array[j] = array[j+1];
array[j+1] = tmp;
}
}
}
}
}
public class Solution {
public void reOrderArray(int [] array) {
for (int i = 0; i < array.length; i++) {
if (array[i] % 2 != 0) { // 奇数
continue;
}
for (int j = i + 1; j < array.length; j++) {
if (array[j] % 2 != 0) {
int temp = array[j];
while(j > i) {
array[j] = array[j -1];
j--;
}
array[i] = temp;
break;
}
}
}
}
}
网友评论