📌  相关文章
📜  方阵中最大值和最小值的Java程序。

📅  最后修改于: 2022-05-13 01:55:43.458000             🧑  作者: Mango

方阵中最大值和最小值的Java程序。

给定一个 n*n 阶的方阵,从给定的矩阵中找出最大值和最小值。

例子:

Input : arr[][] = {5, 4, 9,
                   2, 0, 6,
                   3, 1, 8};
Output : Maximum = 9, Minimum = 0

Input : arr[][] = {-5, 3, 
                   2, 4};
Output : Maximum = 4, Minimum = -5

天真的方法:
我们使用线性搜索分别找到矩阵的最大值和最小值。需要比较的次数是 n 2用于查找最小值和 n 2用于查找最大元素。总比较等于 2n 2

配对比较(高效方法):
从矩阵中选择两个元素,一个从矩阵的一行的开头,另一个从矩阵的同一行的末尾,比较它们,然后将它们中的较小者与矩阵的最小值进行比较,将它们中的较大者与矩阵的最大值进行比较矩阵。我们可以看到,对于两个元素,我们需要 3 次比较,因此为了遍历整个矩阵,我们总共需要 3/2 n 2 次比较。

注意:这是数组的最大最小值方法3的扩展形式。

Java
// Java program for finding maximum 
// and minimum in a matrix.
  
class GFG 
{
    static final int MAX = 100;
      
    // Finds maximum and minimum 
    // in arr[0..n-1][0..n-1]
    // using pair wise comparisons
    static void maxMin(int arr[][], int n)
    {
        int min = +2147483647;
        int max = -2147483648;
      
        // Traverses rows one by one
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j <= n/2; j++)
            {
                // Compare elements from beginning
                // and end of current row
                if (arr[i][j] > arr[i][n - j - 1])
                {
                    if (min > arr[i][n - j - 1])
                        min = arr[i][n - j - 1];
                    if (max< arr[i][j])
                        max = arr[i][j];
                }
                else
                {
                    if (min > arr[i][j])
                        min = arr[i][j];
                    if (max< arr[i][n - j - 1])
                        max = arr[i][n - j - 1];
                }
            }
        }
        System.out.print("Maximum = "+max+
                         ", Minimum = "+min);
    }
      
    // Driver program 
    public static void main (String[] args) 
    {
        int arr[][] = {{5, 9, 11},
                       {25, 0, 14},
                       {21, 6, 4}};
        maxMin(arr, 3);
    }
}
  
// This code is contributed by Anant Agarwal.


输出:

Maximum = 25, Minimum = 0

请参阅有关方阵中的最大值和最小值的完整文章。更多细节!