13调整数组顺序使奇数位于偶数前面

题目描述

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

思路分析

  • 思路一:用个辅助数组,先将所有奇数加入,再将所有偶数加入。
  • 思路二:相对位置不变 = 排序具有稳定性 => 插入、冒泡、归并,秉承越简单越好,用简单插入排序

代码实现

public void reOrderArray(int[] array) {
    int count=0;
    for (int i = 0; i < array.length; i++) {
        if(array[i]%2==1){
            int j=i;
            while (j>count){
                swap(array,j,j-1);
                j--;
            }
            count++;
        }
    }
}

public void swap(int[] nums, int a, int b) {
    int tmp = nums[b];
    nums[b] = nums[a];
    nums[a] = tmp;
}
发布了117 篇原创文章 · 获赞 8 · 访问量 3712

猜你喜欢

转载自blog.csdn.net/qq_34761012/article/details/104490433
今日推荐