Programa en C para encontrar el elemento máximo y mínimo de la array

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 4

Entrada: arr[] = {-1, -1, -1, -1}
Salida:
El elemento mínimo es -1
El elemento máximo es -1

Acercarse:

  1. Deje que maxE y minE sean las variables para almacenar el elemento mínimo y máximo de la array.
  2. Inicialice minE como INT_MAX y maxE como INT_MIN .
  3. Recorre la array dada arr[].
  4. Si el elemento actual es más pequeño que minE , actualice minE como elemento actual.
  5. Si el elemento actual es mayor que maxE , actualice maxE como elemento actual.
  6. 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

Deja una respuesta

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