任意输入一整形数组长度为N输出该数组中最大值和最小值的位置
时间: 2024-12-15 09:20:17 浏览: 4
当你需要找出一个整数数组中最大值和最小值的位置时,可以采用线性扫描的方式来解决这个问题。以下是步骤:
1. **初始化**: 定义两个变量 `minIndex` 和 `maxIndex` 分别表示当前找到的最小值和最大值的索引,初始时都设为0。同时,设置两个变量 ` minValue` 和 ` maxValue` 分别存储已知的最小值和最大值。
2. **遍历数组**:
- 遍历整个数组从第一个元素开始,对于每个元素:
- 如果当前元素小于 `minValue`,则更新 `minValue` 为当前元素,并将 `minIndex` 设为当前索引。
- 同理,如果当前元素大于 `maxValue`,则更新 `maxValue` 为当前元素,并将 `maxIndex` 设为当前索引。
3. **结束循环**:
- 遍历结束后,`minIndex` 就指向了最小值的第一个位置,`maxIndex` 指向了最大值的第一个位置。
以下是一个简单的Python示例:
```python
def find_min_max_positions(arr):
if len(arr) == 0:
return None
min_index = max_index = 0
minValue = maxValue = arr[0]
for i in range(1, len(arr)):
if arr[i] < minValue:
minValue = arr[i]
min_index = i
elif arr[i] > maxValue:
maxValue = arr[i]
max_index = i
return (min_index, max_index)
# 示例
arr = [4, 7, 2, 9, 1, 5]
print(find_min_max_positions(arr)) # 输出:(4, 3)
```
阅读全文