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

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

思路:

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:与牛客相同!

代码:

posted on 2020-08-07 15:16  _那些你很冒险的梦  阅读(121)  评论(0)    收藏  举报

导航