如何在一组给定的任意 n 个整数中找到并正确地交换最大值和最小值,然后输出处理后的数组?
时间: 2024-11-12 09:35:12 浏览: 8
有一个int数组{1,3,5,-2,4,6},要求获取:最大值、最小值、元素和、平均值
5星 · 资源好评率100%
要在一组给定的任意 n 个整数中找到并正确地交换最大值和最小值,可以采用以下步骤:
1. **初始化变量**:设置两个变量 `min` 和 `max` 分别用于记录当前已知的最大值和最小值。假设数组的第一个元素作为初始值。
2. **遍历数组**:从数组的第二个元素开始,遍历整个数组。对于每个元素,与 `min` 比较,如果当前元素更小,则更新 `min`;与 `max` 比较,如果当前元素更大,则更新 `max`。
3. **找到最大值和最小值的索引**:在遍历过程中,同时记录下 `min` 和 `max` 对应的索引 `index_min` 和 `index_max`。
4. **交换值**:找到最大值和最小值的索引后,使用这两个索引来交换原数组中的元素。即 `arr[index_min] = arr[max_index]` 和 `arr[index_max] = arr[min_index]`。
5. **输出结果**:遍历结束后,原数组 `arr` 中的 `index_min` 和 `index_max` 位置会存储着原本的最小值和最大值,将这个数组输出即可。
以下是一个简单的 Python 示例实现:
```python
def swap_max_min(arr):
if len(arr) < 2:
return arr
min_val = max_val = arr[0]
index_min = index_max = 0
for i in range(1, len(arr)):
if arr[i] < min_val:
min_val = arr[i]
index_min = i
elif arr[i] > max_val:
max_val = arr[i]
index_max = i
# 交换
arr[index_min], arr[index_max] = arr[index_max], arr[index_min]
return arr
# 测试示例
arr = [4, 6, 1, 8, 2]
result = swap_max_min(arr)
print("处理后的数组:", result)
```
阅读全文