剑指Offer:调整数组顺序使奇数位于偶数前面【21】

剑指Offer:调整数组顺序使奇数位于偶数前面【21】

题目描述

输入一个整形数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。

解题分析

使用插入排序法的思想来进行数组整理,不需要额外空间,时间复杂度也很低。

Java题解

package arr;

public class ReOrderArray {
    public static void reOrderArray(int [] array) {

        int brace =-1;
        int ptr =0;
        while (ptr<array.length)
        {
            if(array[ptr]%2==0)
            {
                ptr++;
                continue;
            }
            swap(array,ptr++,++brace);
        }

    }

    public static void swap(int[] arr, int i, int j) {
        int t = arr[i];
        arr[i] = arr[j];
        arr[j] = t;
    }

    public static void main(String[] args) {
        int[] arr = {1,3,2,3,4,1,5,6};
        reOrderArray(arr);
        for (int e : arr)
            System.out.println(e);
    }
}

猜你喜欢

转载自www.cnblogs.com/MrSaver/p/9219370.html