输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
public class Solution {
public static void main(String[] args)
{
int[] testArray= {1,4,3,5,7,6,9};
new Solution().reOrderArrayUseSpace(testArray);
}
public void reOrderArray(int [] array) {
int curReadIndex=0;
int orderEndIndex=0;
for(curReadIndex=0;curReadIndex<array.length;curReadIndex++)
{
if(array[curReadIndex]%2!=0)
{
int temp=array[curReadIndex];
for(int i=curReadIndex;i>orderEndIndex;i--)
{
array[i]=array[i-1];
}
array[orderEndIndex++]=temp;
}
}
}
public void reOrderArrayUseSpace(int[] array)
{
int[] evenArray=new int[array.length];
int oddArrayIndex=0;
int evenArrayIndex=0;
for(int i=0;i<array.length;i++)
{
if(array[i]%2==0)
{
evenArray[evenArrayIndex++]=array[i];
}
else
{
array[oddArrayIndex++]=array[i];
}
}
evenArrayIndex=0;
while(oddArrayIndex<array.length)
{
array[oddArrayIndex++]=evenArray[evenArrayIndex++];
}
}
}