找一维数组最大值和最小值,交换二者位置
时间: 2024-12-18 16:28:15 浏览: 15
java代码-1.定义一个一维数组,求出数组的最大值,最小值,平均值。
在一维数组中找到最大值和最小值并交换它们的位置通常涉及到两步:首先找到最大值和最小值,然后更新它们的位置。这可以通过线性扫描完成,不需要额外的数据结构。
以下是Python的一个例子:
```python
def swap_max_min(arr):
# 初始化最大值和最小值为第一个元素
max_val = min_val = arr[0]
# 遍历数组,查找最大值和最小值
for num in arr[1:]:
if num > max_val:
max_val = num
elif num < min_val:
min_val = num
# 检查数组是否只有一个元素,如果是则无需交换
if len(arr) > 1 and arr[0] != max_val:
# 交换位置
arr[0], arr[arr.index(max_val)] = arr[arr.index(max_val)], arr[0]
return arr
# 示例
arr = [3, 7, 1, 9, 4]
new_arr = swap_max_min(arr)
print("原数组:", arr)
print("新数组:", new_arr)
```
在这个例子中,我们首先假设数组的第一个元素既是最大值又是最小值。然后遍历数组,如果遇到更大的数就更新最大值,如果遇到更小的数就更新最小值。最后,如果最大值不是第一个元素,我们就交换它们的位置。
阅读全文