输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分。
前后两个指针,如果前偶后奇,就交换。这样只能完成前面偶数,后面奇数,可能会改变偶数与偶数,奇数与奇数相对位置
public class Solution {
public void reOrderArray(int [] array) {
if(array==null||array.length ==0)
{
return;
}
int begin =0;
int end = array.length-1;
while(end > begin)
{
while(end > begin && (array[begin] & 0x1)!=0)
{
begin++;
}
while(end > begin && (array[end] & 0x1)==0)
{
end--;
}
if(end > begin)
{
int temp = array[begin];
array[begin] = array[end];
array[end]= temp;
}
}
}
}
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
import java.util.ArrayList;
public class Solution {
public void reOrderArray(int [] array) {
if(array==null||array.length ==0)
{
return;
}
ArrayList list1 = new ArrayList();
ArrayList list2 = new ArrayList();
for(int i =0; i< array.length ;i++)
{
if( (array[i]& 0x1) == 0)
{
list2.add(array[i]);
}else
{
list1.add(array[i]);
}
}
for(int i =0;i< array.length ;i++)
{
if(i<list1.size())
{
array[i] =(int) list1.get(i);
}else{
array[i] = (int)list2.get(i-list1.size());
}
}
}
}