交换数组最大和最小值
时间: 2024-08-13 13:03:00 浏览: 77
交换数组的最大值和最小值是一个常见的编程练习,目的是在不额外创建新数组或使用内置函数的情况下找到并更新这两个数值。以下是基本步骤:
1. **遍历数组**:首先,你需要遍历整个数组,找出当前的最小值(初始化为第一个元素)和最大值(初始化为第一个元素)。
2. **比较元素**:对于数组中的每一个元素,如果它小于当前的最小值,就将最小值更新为此元素;如果它大于当前的最大值,就将最大值更新为此元素。
3. **交换位置**:找到最小值和最大值后,由于数组是线性的,可以利用数组下标来记录它们在原始数组中的位置。然后,交换这两个位置的值,即原来的最小值现在存储在原数组的最大值位置,而原来的最大值则存储在最小值的位置上。
4. **更新状态**:遍历结束后,数组的第一个元素就是新的最小值,最后一个元素则是新的最大值。
**示例Python代码**:
```python
def swap_max_min(arr):
if len(arr) < 2:
return
min_val = max_val = arr
min_index = max_index = 0
for i in range(1, len(arr)):
if arr[i] > max_val:
max_val = arr[i]
max_index = i
elif arr[i] < min_val:
min_val = arr[i]
min_index = i
# Swap the values at min and max indices
arr[min_index], arr[max_index] = arr[max_index], arr[min_index]
# 示例
arr = [5, 2, 8, 1, 9]
swap_max_min(arr)
print("Updated array:", arr) # 输出:[5, 1, 8, 9, 2]
```
阅读全文