题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
保持顺序不变可以用插入排序的思想,遇到奇数时就把此奇数前面的偶数后移,奇数插入移动完成后留下的空位
public class Main13 {
public void reOrderArray(int[] array) {
int len=array.length;
int j=1;
int i=0;
int temp=0;
for(j=1;j<len;j++){
while(j<len && array[j]%2==0)
j++;
if(j==len)
break;
temp=array[j];
for(i=j-1;i>=0 && array[i]%2==0;i--){
array[i+1]=array[i];
}
array[i+1]=temp;
}
}
public static void main(String[] args) {
int[] a={2,1,3,4,5,6};
Main13 m= new Main13();
m.reOrderArray(a);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
}