C program to find the maximum and minimum element of the array

Given an array **arr[]** of **N** integers, the task is to write the C program to find the maximum and minimum element of the given array iteratively and recursively.

**Examples:**

Input:arr[] = {1, 2, 4, -1}Output:

The minimum element is -1

The maximum element is 4

Input:arr[] = {-1, -1, -1, -1}Output:

The minimum element is -1

The maximum element is -1

**Approach:**

- Let
**maxE**and**minE**be the variable to store the minimum and maximum element of the array. - Initialise
**minE**as INT_MAX and**maxE**as INT_MIN. - Traverse the given array arr[].
- If the current element is smaller than
**minE**, then update the**minE**as current element. - If the current element is greater than
**maxE**, then update the**maxE**as current element. - Repeat the above two steps for the element in the array.

Below is the implementation of the above approach:

## 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;` `}` |

**Output:**

The minimum element is -1 The maximum element is 4

**Time Complexity:** *O(N)*, where N is the number of element in the given array.

Want to learn from the best curated videos and practice problems, check out the **C Foundation Course **for Basic to Advanced C.