Dada una array arr[] de N enteros, la tarea es escribir el programa C para encontrar el elemento máximo y mínimo de la array dada de forma iterativa y recursiva.
Ejemplos:
Entrada: arr[] = {1, 2, 4, -1}
Salida:
El elemento mínimo es -1
El elemento máximo es 4Entrada: arr[] = {-1, -1, -1, -1}
Salida:
El elemento mínimo es -1
El elemento máximo es -1
Acercarse:
- Deje que maxE y minE sean las variables para almacenar el elemento mínimo y máximo de la array.
- Inicialice minE como INT_MAX y maxE como INT_MIN .
- Recorre la array dada arr[].
- Si el elemento actual es más pequeño que minE , actualice minE como elemento actual.
- Si el elemento actual es mayor que maxE , actualice maxE como elemento actual.
- Repita los dos pasos anteriores para el elemento de la array.
A continuación se muestra la implementación del enfoque anterior:
Iterative Approach
// C program for the above approach #include <limits.h> #include <stdio.h> // Function to find the minimum and // maximum element of the array void findMinimumMaximum(int arr[], int N) { int i; // variable to store the minimum // and maximum element int minE = INT_MAX, maxE = INT_MIN; // Traverse the given array for (i = 0; i < N; i++) { // If current element is smaller // than minE then update it if (arr[i] < minE) { minE = arr[i]; } // If current element is greater // than maxE then update it if (arr[i] > maxE) { maxE = arr[i]; } } // Print the minimum and maximum element printf("The minimum element is %d", minE); printf("\n"); printf("The maximum element is %d", maxE); return; } // Driver Code int main() { // Given array int arr[] = { 1, 2, 4, -1 }; // length of the array int N = sizeof(arr) / sizeof(arr[0]); // Function call findMinimumMaximum(arr, N); return 0; }
Recursive Approach
// C program for the above approach #include <limits.h> #include <stdio.h> // Recursive function to find the minimum // and the maximum element of the array void recursiveMinMax(int arr[], int N, int* minE, int* maxE) { // Base Case if (N < 0) { return; } // If current element is smaller // than minE then update it if (arr[N] < *minE) { *minE = arr[N]; } // If current element is greater // than maxE then update it if (arr[N] > *maxE) { *maxE = arr[N]; } // Recursive call for next iteration recursiveMinMax(arr, N - 1, minE, maxE); } // Function to find the minimum and // maximum element of the array void findMinimumMaximum(int arr[], int N) { int i; // variable to store the minimum // and maximum element int minE = INT_MAX, maxE = INT_MIN; // Recursive Function to find // minimum & maximum element recursiveMinMax(arr, N - 1, &minE, &maxE); // Print the minimum and maximum element printf("The minimum element is %d", minE); printf("\n"); printf("The maximum element is %d", maxE); return; } // Driver Code int main() { // Given array int arr[] = { 1, 2, 4, -1 }; // length of the array int N = sizeof(arr) / sizeof(arr[0]); // Function call findMinimumMaximum(arr, N); return 0; }
Producción:
The minimum element is -1 The maximum element is 4
Complejidad de tiempo: O(N) , donde N es el número de elementos en la array dada.
Publicación traducida automáticamente
Artículo escrito por madhushree_joshi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA