调整数组顺序使奇数位于偶数前面
题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
思路:
1. 开辟新数组保存法:创建两个数组,一个用来存奇数,一个用来存偶数,最后合并。
2. 不开辟新数组:
- 1. 用两个下标 i,j 进行遍历;
- 2. 当 i 走到偶数时停下,并让 j 从 i 的位置开始遍历;(若 i 走到队尾则循环结束)
- 3. 若 j 所指的是偶数则继续前进,j 遇到奇数则停下(如果 j 都没遇到奇数则在队尾停下,结束)。
- 4. 此时 j 所指的是奇数,i 所指的是偶数( i 到 j-1 都是偶数)。
- 5. 则可以用临时变量 temp 保存 j 对应的值,然后从 j-1 开始到 i,挨个后移一位。
- 6. 将 temp 保存的值插入到i的位置。
PS:与牛客相同!
代码: