美文网首页
调整数组奇偶数的位置

调整数组奇偶数的位置

作者: 掌灬纹 | 来源:发表于2019-02-02 09:39 被阅读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();

    }

    相关文章

      网友评论

          本文标题:调整数组奇偶数的位置

          本文链接:https://www.haomeiwen.com/subject/dwxssqtx.html