题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
代码:
class Solution13 {
public static int[] reOrderArray(int [] array) {
int odd;
int n;
int index=0;
for (int i = 0; i < array.length; i++) {
if(array[i]%2==1) {
n = i;
odd = array[i];
for (int j = i-1; j >=index ; j--) {
array[n] = array[j];
n--;
}
array[index] = odd;
System.out.println(array[index]);
index++;
}
}
return array;
}
}
解析:
此题的要点是数组索引的操作
这题的解法和插入排序的思路有点相似(个人理解)
当发现第index个位于i位置的奇数时,将index和i-1之间(包括边界)的数据向后移动一位;最后,将i位置的奇数移动到index位置
完成!!!