C++ Program to Find the Minimum and Maximum Element of an Array
Last Updated :
17 Jan, 2023
Improve
Try it on GfG Practice
Given an array, write functions to find the minimum and maximum elements in it.
Example:
// C++ program to find minimum (or maximum) element
// in an array.
#include <bits/stdc++.h>
using namespace std;
int getMin(int arr[], int n)
{
int res = arr[0];
for (int i = 1; i < n; i++)
res = min(res, arr[i]);
return res;
}
int getMax(int arr[], int n)
{
int res = arr[0];
for (int i = 1; i < n; i++)
res = max(res, arr[i]);
return res;
}
int main()
{
int arr[] = { 12, 1234, 45, 67, 1 };
int n = sizeof(arr) / sizeof(arr[0]);
cout << "Minimum element of array: " << getMin(arr, n)
<< " ";
cout << "Maximum element of array: " << getMax(arr, n);
return 0;
}
Output:
Minimum element of array: 1 Maximum element of array: 1234
Time Complexity: O(n)
Auxiliary Space: O(1), as no extra space is used
Recursive Solution
// C++ program to find
// minimum (or maximum) element
// in an array.
#include <bits/stdc++.h>
using namespace std;
int getMin(int arr[], int n)
{
// If there is single element, return it.
// Else return minimum of first element and
// minimum of remaining array.
return (n == 1) ? arr[0] : min(arr[0],
getMin(arr + 1, n - 1));
}
int getMax(int arr[], int n)
{
// If there is single element, return it.
// Else return maximum of first element and
// maximum of remaining array.
return (n == 1) ? arr[0] : max(arr[0],
getMax(arr + 1, n - 1));
}
int main()
{
int arr[] = { 12, 1234, 45, 67, 1 };
int n = sizeof(arr) / sizeof(arr[0]);
cout << "Minimum element of array: " <<
getMin(arr, n) << " ";
cout << "Maximum element of array: " <<
getMax(arr, n);
return 0;
}
Output:
Min of array: 1 Max of array: 1234
Time Complexity: O(n)
Auxiliary Space: O(n), as implicit stack is used due to recursion
Using Library functions:
We can use min_element() and max_element() to find minimum and maximum of array.
Example:
// C++ program to find minimum (or maximum) element
// in an array.
#include <bits/stdc++.h>
using namespace std;
int getMin(int arr[], int n)
{
return *min_element(arr, arr + n);
}
int getMax(int arr[], int n)
{
return *max_element(arr, arr + n);
}
int main()
{
int arr[] = { 12, 1234, 45, 67, 1 };
int n = sizeof(arr) / sizeof(arr[0]);
cout << "Minimum element of array: " << getMin(arr, n) << " ";
cout << "Maximum element of array: " << getMax(arr, n);
return 0;
}
Output:
Minimum element of array: 1 Maximum element of array: 1234
Time Complexity: O(n)
Auxiliary Space: O(1), as no extra space is used