交换最小值和最大值 头歌
时间: 2025-01-08 09:05:59 浏览: 37
交换两个数的最小值和最大值是一种常见的编程练习,通常用于基础数据结构的教学,如数组或链表。这个操作可以在不使用额外空间的情况下完成,通过比较和赋值实现:
1. 首先,你需要找到数组或变量中的两个元素,一个作为当前最大值(max),另一个作为当前最小值(min)。这通常假设这两个值已经存在并且可以访问。
2. 然后,遍历数组或其他集合,如果遇到比`min`小的元素,则更新`min`;如果遇到比`max`大的元素,则更新`max`。这里要注意保持`min`和`max`的实际值。
3. 最后,在遍历结束后,`min`存储的就是原来的最大值,而`max`则存储了原来的最小值。只需将它们的值互换一下即可。
以下是一个简单的Python示例:
```python
def swap_min_max(arr):
if len(arr) < 2: # 如果数组长度小于2,不需要交换
return arr
min_val = max_val = arr[0]
for val in arr[1:]:
if val < min_val:
min_val = val
elif val > max_val:
max_val = val
# 交换min_val和max_val
arr[0], arr[-1] = max_val, min_val
return arr
# 使用示例
arr = [5, 3, 8, 1, 9]
print(swap_min_max(arr)) # 输出: [9, 3, 8, 1, 5]
```
阅读全文
相关推荐














