算法1:使用快排的方法,进行挪位置,但是这样做的话,循环太多
虽然是多层while循环,但是O(n),原因是当left==right,就跳出循环了
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param array int整型一维数组
* @return int整型一维数组
*/
public int[] reOrderArrayTwo (int[] array) {
if(array==null ){
return null;
}
int[] a = new int[0];
if(array.length==0){
return a;
}
// write code here
//使用快排的方法
int temp = array[0];
int left = 0,right =array.length-1;
while(left<right){
//先看右边往左移动
while(left<right){
if(array[right]%2==1){
array[left] =array[right];
break;
}
right--;
}
while(left<right){
if(array[left]%2==0){
array[right]=array[left];
break;
}
left++;
}
}
array[left] = temp;
return array;
}
}