Recursive Programs to find Minimum and Maximum elements of array
Last Updated :
19 Sep, 2023
Improve
Given an array of integers arr, the task is to find the minimum and maximum element of that array using recursion.
Examples :
Input: arr = {1, 4, 3, -5, -4, 8, 6}; Output: min = -5, max = 8 Input: arr = {1, 4, 45, 6, 10, -8}; Output: min = -8, max = 45
Recursive approach to find the Minimum element in the array
Approach:
- Get the array for which the minimum is to be found
- Recursively find the minimum according to the following:
- Recursively traverse the array from the end
- Base case: If the remaining array is of length 1, return the only present element i.e. arr[0]
if(n == 1) return arr[0];
- Recursive call: If the base case is not met, then call the function by passing the array of one size less from the end, i.e. from arr[0] to arr[n-1].
- Return statement: At each recursive call (except for the base case), return the minimum of the last element of the current array (i.e. arr[n-1]) and the element returned from the previous recursive call.
return min(arr[n-1], recursive_function(arr, n-1));
- Print the returned element from the recursive function as the minimum element
Pseudocode for Recursive function:
If there is single element, return it. Else return minimum of following. a) Last Element b) Value returned by recursive call for n-1 elements.
Below is the implementation of the above approach:
- C++
- Java
- Python3
- C#
- PHP
- Javascript
C++
// Recursive C++ program to find minimum #include <iostream> using namespace std; // function to print Minimum element using recursion int findMinRec( int A[], int n) { // if size = 0 means whole array has been traversed if (n == 1) return A[0]; return min(A[n-1], findMinRec(A, n-1)); } // driver code to test above function int main() { int A[] = {1, 4, 45, 6, -50, 10, 2}; int n = sizeof (A)/ sizeof (A[0]); cout << findMinRec(A, n); return 0; } |
Java
Python3
C#
PHP
Javascript
Output
-50
Recursive approach to find the Maximum element in the array
Approach:
- Get the array for which the maximum is to be found
- Recursively find the maximum according to the following:
- Recursively traverse the array from the end
- Base case: If the remaining array is of length 1, return the only present element i.e. arr[0]
if(n == 1) return arr[0];
- Recursive call: If the base case is not met, then call the function by passing the array of one size less from the end, i.e. from arr[0] to arr[n-1].
- Return statement: At each recursive call (except for the base case), return the maximum of the last element of the current array (i.e. arr[n-1]) and the element returned from the previous recursive call.
return max(arr[n-1], recursive_function(arr, n-1));
- Print the returned element from the recursive function as the maximum element
Pseudocode for Recursive function:
If there is single element, return it. Else return maximum of following. a) Last Element b) Value returned by recursive call for n-1 elements.
Below is the implementation of the above approach:
- C++
- Java
- Python3
- C#
- PHP
- Javascript
C++
// Recursive C++ program to find maximum #include <iostream> using namespace std; // function to return maximum element using recursion int findMaxRec( int A[], int n) { // if n = 0 means whole array has been traversed if (n == 1) return A[0]; return max(A[n-1], findMaxRec(A, n-1)); } // driver code to test above function int main() { int A[] = {1, 4, 45, 6, -50, 10, 2}; int n = sizeof (A)/ sizeof (A[0]); cout << findMaxRec(A, n); return 0; } |
Java
Python3
C#
PHP
Javascript
Output
45
Related article:
Program to find largest element in an array