Partition Array by Odd and Even
给一个数组, 把奇数放左边, 偶数放右边.
其实就是一个quicksort的partition的改写, 改写的地方很少, 就是判断条件从 nums[i] 对 nums[k]的比较改成nums[i] % 2 != 0的比较.
public void partitionArray(int[] nums) { if(nums.length == 0 || nums == null) return; int i = 0; int j = nums.length - 1; while(i < j) { while(i<j && nums[i] % 2 != 0) // 如果左指针的位置是奇数 i++; while(i< j && nums[j] % 2 == 0) // 如果右指针的位置是偶数 j--; if(i < j) swap(nums,i++,j--); } } public void swap(int[] nums, int i, int j) { int t = nums[i]; nums[i] = nums[j]; nums[j] = t; }
Leave A Comment