调整数组奇偶数的位置

2019-02-02  本文已影响0人  掌灬纹

给定一个数组调整数组元素的顺序,使奇数全在数组前半部分;偶数全在数组后半部分。

思路:

快排双指针思维,left,right两个指针,

left,right从数组两边向中间遍历,偶奇数互换

(代码示例)

public static void main(String[] args) {

int[] a = {1,2,3,4,5,6,7,8,9,10};

print(a);

int left = 0;

int right = a.length - 1;

while(left <= right) {

while((a[left]&1) == 1) left++;

while((a[right]&1) == 0) right--;

if(left < right)//考虑全为奇数或偶数的特殊情况,不用交换

swap(a, left, right);

}

print(a);

}

static void swap(int[] arr, int i, int j) {

int temp = arr[i];

arr[i] = arr[j];

arr[j] = temp;

}

static void print(int[] arr) {

for (int i : arr) {

System.out.print(i+" ");

}

System.out.println();

}

上一篇下一篇

猜你喜欢

热点阅读