一个列表由若20整数组成,(要求:将偶数放在前面,奇数放在后面,并输出该列表)(初始20个数据由用户任意输入)
时间: 2023-03-19 10:30:01 浏览: 542
请编制函数Compute()分别计算出xx中偶数的个数even,奇数的平均值ave1,偶
可以使用双指针法,一个指针从列表头开始,一个指针从列表尾开始,分别向中间移动,当左指针指向奇数,右指针指向偶数时,交换两个数的位置,直到左指针和右指针相遇为止。
具体实现如下:
1. 首先定义一个长度为20的列表,用于存储用户输入的数据。
2. 使用for循环,让用户输入20个整数,并将它们依次存储到列表中。
3. 定义两个指针,一个指向列表头,一个指向列表尾。
4. 使用while循环,当左指针小于右指针时,执行以下操作:
a. 如果左指针指向的数是偶数,则左指针向右移动一位。
b. 如果右指针指向的数是奇数,则右指针向左移动一位。
c. 如果左指针指向的数是奇数,右指针指向的数是偶数,则交换两个数的位置,并将左指针向右移动一位,右指针向左移动一位。
5. 循环结束后,输出排序后的列表。
完整代码如下:
```python
# 定义一个长度为20的列表
lst = [] * 20
# 用户输入20个整数
for i in range(20):
lst[i] = int(input("请输入第%d个整数:" % (i+1)))
# 定义左右指针
left =
right = 19
# 双指针法排序
while left < right:
if lst[left] % 2 == :
left += 1
elif lst[right] % 2 == 1:
right -= 1
else:
lst[left], lst[right] = lst[right], lst[left]
left += 1
right -= 1
# 输出排序后的列表
print("排序后的列表为:", lst)
```
阅读全文