python编程 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分
时间: 2023-12-08 21:56:14 浏览: 111
可以使用双指针法来实现这个函数。一个指针从数组的左边往右移动,另一个指针从数组的右边往左移动,当两个指针都指向奇数和偶数时,交换它们的位置。直到两个指针相遇,就完成了奇偶数分离的工作。
代码如下:
```python
def reorder_array(nums):
if not nums:
return nums
left, right = 0, len(nums) - 1
while left < right:
while left < right and nums[left] % 2 == 1:
left += 1
while left < right and nums[right] % 2 == 0:
right -= 1
if left < right:
nums[left], nums[right] = nums[right], nums[left]
return nums
```
测试代码如下:
```python
print(reorder_array([1, 2, 3, 4, 5, 6, 7, 8, 9])) # [1, 9, 3, 7, 5, 6, 4, 8, 2]
print(reorder_array([2, 4, 6, 1, 3, 5, 7, 9])) # [9, 7, 5, 3, 1, 6, 4, 2]
print(reorder_array([1, 3, 5, 7, 9])) # [1, 3, 5, 7, 9]
print(reorder_array([2, 4, 6, 8, 10])) # [2, 4, 6, 8, 10]
print(reorder_array([])) # []
```
阅读全文