C++ 中方阵中的最大值和最小值
问题陈述
给定一个 n*n 阶方阵,求出方阵中的最大值和最小值
举例
如果给定的矩阵是 −
{{15, 17, 19}, {5, 1, 7}, {14, 5, 16}}
then
Minimum number is 1 and maximum number is 19算法
- 从矩阵中选取两个元素,一个来自该行开头,另一个来自同一行末尾
- 对它们进行比较,然后将较小的元素与矩阵的最小值比较,将较大的元素与矩阵的最大值比较。
- 我们可以看到,对于两个元素需要 3 次比较,因此对于遍历整个矩阵,我们需要总共 3/2n2 次比较
举例
现在让我们看一个示例 −
#include <bits/stdc++.h>
#define MAX 200
using namespace std;
void getMinMax(int matrix[MAX][MAX], int n) {
int min = INT_MAX;
int max = INT_MIN;
for (int i = 0; i < n; ++i) {
for (int j = 0; j <= n / 2; ++j){
if (matrix[i][j] > matri[i][n - j - 1]) {
if (min > matrixi][n - j - 1]) {
min = marix[i][n - j -1];
}
if (max < matrixi][j]) {
max = marix[i][j];
}
} else {
if (min > matrixi][j]) {
min = marix[i][j];
}
if (max < matrixi][n - j - 1]) {
max = marix[i][n - j - 1];
}
}
}
}
cout << "Maximum = " << max << ", Minimu = " << min << endl;
}
int main() {
int matrix[MAX][MAX] = { {15, 17, 19}, {5, 1, 7}, {14, 5, 16} };
getMinMax(matrix, 3);
return 0;
}输出
Maximum = 19, Minimum = 1
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP