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