剑指offer——第十三题

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

解答:采取类似冒泡排序的方法不需要开辟额外空间。
思路:如果当前的值为偶数,后一个值为奇数,则两个数对换位置

public class o_13 {
    public void reOrderArray(int[] array) {
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array.length - 1; j++) {
                if (array[j] % 2 == 0 && array[j + 1] % 2 == 1) {
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
    }

    public static void main(String[] args) {
        o_13 o13 = new o_13();
        int[] array = {1, 3, 2, 4, 6, 7, 9};
        o13.reOrderArray(array);
        System.out.println(Arrays.toString(array));
    }
}

猜你喜欢

转载自blog.csdn.net/dl674756321/article/details/90137064