2、在一个一维数组中存储的n个互不相同的整数中找出最小值和最大值,将最小值移到第一个数之前,将最大值移到最后一个数之后,其他数保持相对位置不变。
时间: 2023-05-19 21:04:08 浏览: 66
数组应用举例求出十个数中的最大数-C语言数组教学
这个问题可以通过遍历一次数组来找到最小值和最大值,然后再进行移动操作。以下是示例代码:
```python
def move_min_max(arr):
n = len(arr)
min_val = arr[0]
max_val = arr[0]
min_idx = 0
max_idx = 0
for i in range(1, n):
if arr[i] < min_val:
min_val = arr[i]
min_idx = i
elif arr[i] > max_val:
max_val = arr[i]
max_idx = i
if min_idx < max_idx:
arr.pop(max_idx)
arr.pop(min_idx)
arr.insert(0, min_val)
arr.append(max_val)
else:
arr.pop(min_idx)
arr.pop(max_idx)
arr.append(max_val)
arr.insert(0, min_val)
return arr
```
这个函数接受一个一维数组作为参数,返回移动后的数组。如果数组中有相同的最小值或最大值,函数会移动其中一个。
阅读全文