C ++中方矩阵的最大值和最小值

问题陈述

给定n * n阶方阵,从矩阵中找到最大值和最小值

示例

如果给定矩阵为-

{{15, 17, 19}, {5, 1, 7}, {14, 5, 16}}

then

Minimum number is 1 and maximum number is 19

算法

  • 从矩阵中选择两个元素,一个从矩阵行的开头开始,另一个从矩阵同一行的结尾开始

  • 比较它们,然后将它们中的较小者与矩阵的最小值进行比较,将它们中的较大者与矩阵的最大值进行比较。

  • 我们可以看到,对于两个元素,我们需要3个比较,因此对于遍历整个矩阵,我们总共需要3 / 2n 2个比较

示例

现在让我们看一个例子-

#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

以上是 C ++中方矩阵的最大值和最小值 的全部内容, 来源链接: utcz.com/z/322279.html

回到顶部