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

2019-05-09  本文已影响0人  三千米

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

首先这是一个整数数组。奇数放在数组的前半部分,偶数放在数组的后半部分。

所以设置两个指针,第一个指针P1指向数组的第一个元素,第二个指针P2指向数组的最后一个元素。

p1只能向后移,p2只能向前移

题目要求为奇数在偶数前面。这是分情况来考虑。

1.p1指向为奇数。此时p1后移,直至遇到偶数。

2.p2指向为偶数。此时p2前移,直至遇到奇数。

故p1指向奇数,p2指向偶数。分别前移后移。

p1指向偶数,p2指向奇数,交换p1,p2所指向的值。

p1为奇数,p2为奇数,p1后移,p2不动

p1为偶数,p2为偶数,p2前移,p1不动。

当p2的位置在p1前面的时候,所有的奇数在偶数前面。

上一篇下一篇

猜你喜欢

热点阅读