Programa en C++ para Máximo y Mínimo en una array cuadrada.

Dada una array cuadrada de orden n*n, encuentre el máximo y el mínimo de la array dada. 

Ejemplos: 

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

Método ingenuo: 
encontramos el máximo y el mínimo de la array por separado mediante la búsqueda lineal. El número de comparación necesario es n 2 para encontrar el mínimo y n 2 para encontrar el elemento máximo. La comparación total es igual a 2n 2 .

Comparación de pares (método eficiente): 
seleccione dos elementos de la array, uno desde el comienzo de una fila de la array, otro desde el final de la misma fila de la array, compárelos y luego compare los más pequeños con el mínimo de la array y mayor de ellos al máximo de la array. Podemos ver que para dos elementos necesitamos 3 comparaciones, por lo que para recorrer toda la array necesitamos un total de 3/2 n 2 comparaciones.

Nota: Esta es una forma extendida del método 3 de Máximo Mínimo de Array.

C++

// C++ program for finding maximum and minimum in
// a matrix.
#include<bits/stdc++.h>
using namespace std;
  
#define MAX 100
  
// Finds maximum and minimum in arr[0..n-1][0..n-1]
// using pair wise comparisons
void maxMin(int arr[][MAX], int n)
{
    int min = INT_MAX;
    int max = INT_MIN;
  
    // 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];
            }
        }
    }
    cout << "Maximum = " << max;
         << ", Minimum = " << min;
}
  
/* Driver program to test above function */
int main()
{
    int arr[MAX][MAX] = {5, 9, 11,
                        25, 0, 14,
                        21, 6, 4};
    maxMin(arr, 3);
    return 0;
}

Producción: 

Maximum = 25, Minimum = 0

Consulte el artículo completo sobre Máximo y Mínimo en una array cuadrada. ¡para más detalles!

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *