使用random类随机定义一个10个数据的int型数组,实现将所有的偶数放在前半部分,将所有的奇数放在数组后半部分
时间: 2024-05-14 16:11:49 浏览: 52
好的,这个问题我可以回答。请看以下代码:
```python
import random
arr = [0] * 10
for i in range(10):
arr[i] = random.randint(1,100)
print("Original array:")
print(arr)
even_idx = 0
odd_idx = len(arr) - 1
while even_idx < odd_idx:
while arr[even_idx] % 2 == 0 and even_idx < odd_idx:
even_idx += 1
while arr[odd_idx] % 2 == 1 and even_idx < odd_idx:
odd_idx -= 1
if even_idx < odd_idx:
temp = arr[even_idx]
arr[even_idx] = arr[odd_idx]
arr[odd_idx] = temp
even_idx += 1
odd_idx -= 1
print("Modified array:")
print(arr)
```
这个程序首先定义了一个长度为10的int型数组,并且使用random库随机生成每一个元素的值。然后,程序使用two-pointer的方式,将偶数放在数组前半部分,将奇数放在数组后半部分。具体来说,程序使用even_idx和odd_idx两个指针,从数组的两端开始,向中间移动。如果even_idx指向的元素是偶数,就将even_idx移动到下一个位置;如果odd_idx指向的元素是奇数,就将odd_idx移动到前一个位置;如果even_idx指向的元素是奇数,odd_idx指向的元素是偶数,就交换它们的值,并将even_idx移动到下一个位置,odd_idx移动到前一个位置。最终,程序输出修改后的数组。
希望这个回答能够帮到您!
阅读全文