7-3 交换最小值和最大值
时间: 2024-12-22 07:12:26 浏览: 9
PTA-交换最小值和最大值
在编程中,特别是处理数组或列表时,有时需要交换两个数(通常是数组中的元素)中的最小值和最大值。这个操作相对简单,可以使用临时变量、双指针或者其他迭代方法来完成。下面是一个简单的Python示例:
```python
def swap_min_max(arr):
# 确定最小值和最大值的索引
min_index = 0
max_index = len(arr) - 1
# 检查数组是否为空或只有一个元素
if arr and len(arr) > 1:
# 如果第一个元素是最小的,将它与最后一个元素交换
if arr[min_index] > arr[max_index]:
arr[min_index], arr[max_index] = arr[max_index], arr[min_index]
# 否则,从中间开始寻找最小值和最大值
else:
while min_index < max_index:
# 找到较小的值并交换
if arr[min_index] > arr[min_index + 1]:
arr[min_index], arr[min_index + 1] = arr[min_index + 1], arr[min_index]
# 找到较大的值并交换
if arr[max_index] < arr[max_index - 1]:
arr[max_index], arr[max_index - 1] = arr[max_index - 1], arr[max_index]
# 更新最小值和最大值的边界
min_index += 1
max_index -= 1
return arr
# 示例
arr = [5, 3, 8, 1, 9]
print(swap_min_max(arr)) # 输出:[1, 3, 8, 5, 9]
阅读全文