奇偶的神奇排列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了奇偶的神奇排列相关的知识,希望对你有一定的参考价值。

题目:

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

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

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

分析:

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

以上是关于奇偶的神奇排列的主要内容,如果未能解决你的问题,请参考以下文章

如何检查排列是不是具有相等的奇偶性?

HDU1010-奇偶剪枝(DFS)

输入一个整数数组,输出奇偶数相间排列的数组

第三周训练赛题解

LeetCode 2164. 对奇偶下标分别排序

FineReport实现根据点击次数奇偶性排序的方法