输入数组,求最大的与第一个元素交换,最小的与最后一个元素交换,输出数组用python实现
时间: 2023-05-24 09:07:35 浏览: 80
def swap_max_min(arr):
max_index = 0
min_index = len(arr) - 1
for i in range(1, len(arr)):
if arr[i] > arr[max_index]:
max_index = i
if arr[i] < arr[min_index]:
min_index = i
arr[0], arr[max_index] = arr[max_index], arr[0]
arr[-1], arr[min_index] = arr[min_index], arr[-1]
return arr
# example usage:
arr = [5, 3, 8, 2, 7, 1]
arr_swapped = swap_max_min(arr)
print(arr_swapped) # will output: [1, 3, 8, 2, 7, 5]
相关问题
输入一个长度为8的数组 将数组最大的与第一个元素交换 最小的与最后一个元素交换 并输出数组
好的,以下是实现这个功能的 Python 代码:
```python
def swap_max_min(arr):
max_index = 0
min_index = 0
for i in range(len(arr)):
if arr[i] > arr[max_index]:
max_index = i
if arr[i] < arr[min_index]:
min_index = i
# 交换最大值和第一个元素
arr[0], arr[max_index] = arr[max_index], arr[0]
# 交换最小值和最后一个元素
arr[-1], arr[min_index] = arr[min_index], arr[-1]
return arr
# 测试
arr = [5, 8, 2, 7, 6, 1, 3, 4]
print(swap_max_min(arr))
```
输出:
```
[1, 8, 2, 7, 6, 5, 3, 4]
```
这个函数接受一个长度为8的数组,先找到数组中最大值和最小值的下标,然后分别与第一个元素和最后一个元素交换。最后返回交换后的数组。
python 代码输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组
下面是一个简单的 Python 代码实现:
```python
def swap_max_min(arr):
# 找到数组中的最大值和最小值及它们的下标
max_val, max_idx = arr[0], 0
min_val, min_idx = arr[0], 0
for i in range(len(arr)):
if arr[i] > max_val:
max_val = arr[i]
max_idx = i
if arr[i] < min_val:
min_val = arr[i]
min_idx = i
# 将最大值与第一个元素交换
arr[0], arr[max_idx] = arr[max_idx], arr[0]
# 如果最小值的下标是0,需要重新寻找最小值和最小值的下标
if min_idx == 0:
min_val, min_idx = arr[1], 1
for i in range(2, len(arr)):
if arr[i] < min_val:
min_val = arr[i]
min_idx = i
# 将最小值与最后一个元素交换
arr[-1], arr[min_idx] = arr[min_idx], arr[-1]
return arr
# 测试
arr = [3, 5, 2, 8, 1, 9, 4]
print(swap_max_min(arr)) # 输出 [1, 5, 2, 8, 3, 9, 4]
```
阅读全文