[2021校招必看之Java版《剑指offer》-56] 调整数组顺序使奇数位于偶数前面

文章目录

  • 1、题目描述
  • 2、解题思路
    • 2.1 使用辅助数组
    • 2.2 in-place算法
  • 3、解题代码
    • 3.1 使用辅助数组
    • 3.2 in-place算法
  • 4、解题心得

1、题目描述

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

2、解题思路

2.1 使用辅助数组

  对原数组进行深拷贝,得到辅助数组。接着遍历一次辅助数组,把奇数覆盖到原数组前半部分,再遍历一次辅助数组,把偶数覆盖到原数组的后半部分。

2.2 in-place算法

  如果内存紧张,对时间要求不高,则可以使用 in-place 算法。

  定义两个指针ij,其中,i表示已经将奇数放好的下一个位置,j

你可能感兴趣的:(剑指offer(Java语言),java,数组,数据结构,剑指offer)