2.有一个十个元的整数数组,数组元无规律存储,请写一个程序,将该数组中所有偶数都移到 所有奇数的前面。
时间: 2024-12-06 20:26:15 浏览: 6
要实现这个功能,你可以使用双指针法,一个指向数组的开始(left),另一个指向数组的结束(right)。然后按照以下步骤操作:
1. 初始化两个指针,`left`设为0,`right`设为数组长度减1。
2. 当`left < right`时,循环执行以下操作:
a. 检查当前`left`位置的元素是否为偶数(数组下标乘以2取余的结果为0),如果是偶数,则交换`left`和`right`位置的元素。
b. 如果`left`位置不是偶数,向左移动`left`(加1)。
c. 如果`right`位置是偶数,向右移动`right`(减1)。
3. 循环结束后,数组就满足条件,偶数在前,奇数在后。
以下是Python语言的一个示例代码:
```python
def move_even_to_front(arr):
left = 0
right = len(arr) - 1
while left < right:
if arr[left] % 2 == 0: # 判断左边元素是否为偶数
# 交换左右位置的元素
arr[left], arr[right] = arr[right], arr[left]
else:
left += 1 # 非偶数向左移动
if arr[right] % 2 == 0: # 右边元素也是偶数,向右移
right -= 1
return arr
# 示例
arr = [1, 4, 7, 8, 5, 2, 9, 6, 3, 0]
print(move_even_to_front(arr)) # 输出: [0, 2, 4, 6, 8, 1, 5, 7, 9, 3]
```
阅读全文