怎么求二维数组的最大最小值
时间: 2024-06-17 14:07:22 浏览: 140
对于一个二维数组,我们可以采用以下两种方法求解它的最大值和最小值:
1. 遍历法
我们可以遍历整个二维数组,依次比较每个元素的大小,找到其中的最大值和最小值。这种方法简单易懂,但效率较低,时间复杂度为O(n^2)。
2. 空间换时间法
我们可以用两个变量来分别存储最大值和最小值,然后遍历整个数组,依次将每个元素与最大值和最小值进行比较,更新变量的值。这种方法需要使用两个额外的变量,但时间复杂度为O(n),效率较高。
下面是代码示例:
遍历法:
```
int max = arr, min = arr;
for(int i = 0; i < row; ++i) {
for(int j = 0; j < col; ++j) {
if(arr[i][j] > max)
max = arr[i][j];
if(arr[i][j] < min)
min = arr[i][j];
}
}
```
空间换时间法:
```
int max = arr, min = arr[0];
for(int i = 0; i < row; ++i) {
for(int j = 0; j < col; ++j) {
max = max > arr[i][j] ? max : arr[i][j];
min = min < arr[i][j] ? min : arr[i][j];
}
}
```
相关问题
求二维数组的最小值及其下标
要求二维数组的最小值及其下标,可以使用两重循环遍历数组,并使用变量来记录最小值和最小值所在的行、列下标。具体实现如下:
```c++
int min_val = arr[0];
int min_row = 0;
int min_col = 0;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
if (arr[i][j] < min_val) {
min_val = arr[i][j];
min_row = i;
min_col = j;
}
}
}
// 输出最小值及其下标
cout << "最小值为:" << min_val << endl;
cout << "所在行下标为:" << min_row << endl;
cout << "所在列下标为:" << min_col << endl;
```
用c语言求二维数组的最小值
以下是用C语言求二维数组最小值的示例代码:
```c
#include <stdio.h>
int main() {
int arr[3][4] = {{3, 5, 1, 9}, {7, 2, 8, 4}, {6, 0, 10, 12}};
int min = arr[0][0];
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
if (arr[i][j] < min) {
min = arr[i][j];
}
}
}
printf("The minimum value in the 2D array is: %d", min);
return 0;
}
```
这里我们先定义了一个3行4列的二维数组`arr`,并初始化了一些数据。然后我们设置一个变量`min`来保存最小值,初值设为数组中第一个元素。之后我们使用两个循环来遍历整个二维数组,如果找到比`min`更小的元素,就更新`min`的值。最后输出`min`即可。
阅读全文