编写一个java程序来重新排列数组中的所有数字,甚至在奇数之前,只使用O(1)空间,并且应该保持偶数和奇数的相对顺序,例如: 输入:[1,2,3,4,5] 输出:[2,4,1,3,5]
答案 0 :(得分:0)
建议:
通过数组查看相邻的数字对。每当你找到一对第一个数字是奇数而第二个数字是偶数时,交换它们。保持交换数量的计数。继续对阵列进行传递,直到你最终传出一个你不必交换任何数字的传球。
答案 1 :(得分:0)
试试这段代码:
public static void main(String[] args)
{
int[] arr = {1, 2, 3, 4, 5};
int temp=0;
int a=0;
for(int i=0;i<arr.length;i++){
if(arr[i]%2==0){
for (int j=i;j>a;j--){
temp=arr[j-1];
arr[j-1]=arr[j];
arr[j]=temp;
}
a++;
}
}
System.out.println(Arrays.toString(arr));
}