调整数组顺序使偶数位于奇数前面
解法分析
扫描这个数组的时候,如果发现有偶数出现在奇数的前面,则交换它们的顺序。
双指针法
维护两个指针。
一个指针初始化时指向第一个数字,他只向后移动。另一个指针初始化指向最后一个指针,他只向前移动。
两个指针相遇之前,,第一个指针总是位于第二个指针前面。如果第一个指针指向的数字是偶数,并且第二个指针指向的是奇数则交换这两个数字
Code
public int[] sortArrayByParity(int[] A) {
int begin=0;
int end=A.length-1;
while(begin<end){
while(begin<end&&(A[begin]&1)==0)
begin++;
while(begin<end&&(A[end]&1)==1)
end--;
if(begin<end){
int temp=A[begin];
A[begin]=A[end];
A[end]=temp;
}
}
return A;
}