调整数组顺序使奇数位于偶数前面
问题陈述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
思路分析
定义两个循环变量i,j,i从数组头开始遍历寻找偶数,j从数组尾开始遍历寻找奇数,然后交换。
代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| public class Partition_OddAndDouble { public int[] exchange(int[] nums){ int i=0,j=nums.length-1; while(i<j){ while(i<j&&(nums[i]&1)==1) i++; while(i<j&&nums[j]%2==0) j--; int temp=nums[i]; nums[i]=nums[j]; nums[j]=temp; } return nums; } public static void main(String[] args){ int[] nums={2,1,6,7,3,2,0}; Partition_OddAndDouble partition_oddAndDouble=new Partition_OddAndDouble(); partition_oddAndDouble.exchange(nums); for(int i=0;i<nums.length;i++){ System.out.println(nums[i]); } } }
|