1.下标法,注意一下当发现偶数的时候,不能将它直接与最近的奇数交换,这样奇数的相对顺序虽然没有改变,但是偶数的相对数据变化了,所以移位吧。
public class Solution {
int[] tempArray;
public void reOrderArray(int [] array) {
int length=array.length;
tempArray=new int[length];
if(length==0||length==1){
}
else{
int o;
for(int i=0;i<length;){
if(array[i]%2==1){
i++;
}else{
o=i;
i++;
while(i<length&&array[i]%2==0){
i++;
}
if(i==length){
return;
}
int temp=array[i];
for(int j=i;j>o;j--){
array[j]=array[j-1];
}
array[o]=temp;
i=o+1;
}
}
}
}
}2.辅助数组法
public class Solution {
int[] tempArray;
public void reOrderArray(int [] array) {
int length=array.length;
tempArray=new int[length];
if(length==0||length==1){
}
else{
for(int i=0;i<length;i++){
tempArray[i]=array[i];
}
int k=0;
for(int i=0;i<length;i++){
if(tempArray[i]%2==1){
array[k++]=tempArray[i];
}
}
for(int i=0;i<length;i++){
if(tempArray[i]%2==0){
array[k++]=tempArray[i];
}
}
}
}
}
京公网安备 11010502036488号