题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
package offer;
public class ReorderOddEven {
public static void main(String[] args) {
int[] arr = {4,3,5,6,9,10,12};
reorderOddEven(arr);
}
public static void reorderOddEven(int[] arr){
if(arr==null)return;
int i=0,j=arr.length-1;
while(i<j){
while(i<=arr.length-1&&(arr[i]&0x1)!=0)i++;
while(j>=0&&(arr[j]&0x1)==0)j--;
if(i<j){
swap(arr,i,j);
}
}
print(arr);
}
public static void swap(int[] arr, int i, int j){
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
public static void print(int[] arr){
for(int i=0; i<arr.length; i++)
System.out.print(arr[i]+" ");
}
}
本文介绍了一种将数组中的奇数和偶数分别排列的方法。通过定义两个指针,一个从数组头部开始寻找偶数,另一个从尾部开始寻找奇数,并交换它们的位置,最终达到奇数在前、偶数在后的效果。
1988

被折叠的 条评论
为什么被折叠?



