题目:

输入一个整数数组,实现一个函数,

来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,

所有偶数位于数组的后半部分

分析:

1、首先输入一个整数数组,然后对数组内容赋值,从下标0开始访问,打印数组。给定两个下标left和right,left数组的起始位置,right数组最后一个元素。

2、left从前往后找到一个偶数停止,right从后往前找到一个奇数停止。双方都找到,进行交换。这只是进行一次交换的完整过程,所以要写成循环结构left和right进行寻找在“left<right”这个循环的大结构基础上,而找偶数和找奇数的过程每次都必须在"left<right",所以在arr[left]%2==1和arr[right]%2==0前,都加上“left<right"。

拓展:如果不在arr[left]%2==1和arr[right]%2==0前,都加上“left<right",会出现什么?

若数组全是奇数,则循环中left会一直left++,可能会出现越界的情况。反之偶数,同理。

代码如下:

奇偶的神奇排列_赋值

运行截图:

奇偶的神奇排列_数组_02