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++
// 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
// Recursive Java program to find minimum import java.util.*; class GFG { // function to return minimum element using recursion public static int findMinRec( int A[], int n) { // if size = 0 means whole array // has been traversed if (n == 1 ) return A[ 0 ]; return Math.min(A[n- 1 ], findMinRec(A, n- 1 )); } // Driver code public static void main(String args[]) { int A[] = { 1 , 4 , 45 , 6 , - 50 , 10 , 2 }; int n = A.length; // Function calling System.out.println(findMinRec(A, n)); } } //This code is contributed by Niraj_Pandey |
Python3
# Recursive python 3 program to # find minimum # function to print Minimum element # using recursion def findMinRec(A, 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 if __name__ = = '__main__' : A = [ 1 , 4 , 45 , 6 , - 50 , 10 , 2 ] n = len (A) print (findMinRec(A, n)) # This code is contributed by # Shashank_Sharma |
C#
// Recursive C# program to find minimum using System; class GFG { // function to return minimum // element using recursion public static int findMinRec( int []A, int n) { // if size = 0 means whole array // has been traversed if (n == 1) return A[0]; return Math.Min(A[n - 1], findMinRec(A, n - 1)); } // Driver code static public void Main () { int []A = {1, 4, 45, 6, -50, 10, 2}; int n = A.Length; // Function calling Console.WriteLine(findMinRec(A, n)); } } // This code is contributed by Sachin |
PHP
<?php // Recursive PHP program to find minimum // function to print Minimum // element using recursion function findMinRec( $A , $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 $A = array (1, 4, 45, 6, -50, 10, 2); $n = sizeof( $A ); echo findMinRec( $A , $n ); // This code is contributed by akt ?> |
Javascript
<script> // Javascript program to find minimum // Function to print Minimum // element using recursion function findMinRec(A, n) { // If size = 0 means whole // array has been traversed if (n == 1) return A[0]; return Math.min(A[n - 1], findMinRec(A, n - 1)); } // Driver Code let A = [ 1, 4, 45, 6, -50, 10, 2 ]; let n = A.length; document.write( findMinRec(A, n)); // This code is contributed by sravan kumar G </script> |
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++
// 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
// Recursive Java program to find maximum import java.util.*; class GFG { // function to return maximum element using recursion public static int findMaxRec( int A[], int n) { // if size = 0 means whole array // has been traversed if (n == 1 ) return A[ 0 ]; return Math.max(A[n- 1 ], findMaxRec(A, n- 1 )); } // Driver code public static void main(String args[]) { int A[] = { 1 , 4 , 45 , 6 , - 50 , 10 , 2 }; int n = A.length; // Function calling System.out.println(findMaxRec(A, n)); } } //This code is contributed by Niraj_Pandey |
Python3
# Recursive Python 3 program to # find maximum # function to return maximum element # using recursion def findMaxRec(A, 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 if __name__ = = "__main__" : A = [ 1 , 4 , 45 , 6 , - 50 , 10 , 2 ] n = len (A) print (findMaxRec(A, n)) # This code is contributed by ita_c |
C#
// Recursive C# program to find maximum using System; class GFG { // function to return maximum // element using recursion public static int findMaxRec( int []A, int n) { // if size = 0 means whole array // has been traversed if (n == 1) return A[0]; return Math.Max(A[n - 1], findMaxRec(A, n - 1)); } // Driver code static public void Main () { int []A = {1, 4, 45, 6, -50, 10, 2}; int n = A.Length; // Function calling Console.WriteLine(findMaxRec(A, n)); } } // This code is contributed by Sach_Code |
PHP
<?php // Recursive PHP program to find maximum // function to return maximum // element using recursion function findMaxRec( $A , $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 $A = array (1, 4, 45, 6, -50, 10, 2); $n = sizeof( $A ); echo findMaxRec( $A , $n ); // This code is contributed // by Akanksha Rai ?> |
Javascript
<script> // Recursive Java program to find maximum // Function to return maximum element // using recursion function findMaxRec(A, n) { // If size = 0 means whole array // has been traversed if (n == 1) return A[0]; return Math.max(A[n - 1], findMaxRec(A, n - 1)); } // Driver code let A = [ 1, 4, 45, 6, -50, 10, 2 ]; let n = A.length; // Function calling document.write(findMaxRec(A, n)); // This code is contributed by sravan kumar G </script> |
Output
45
Related article:
Program to find largest element in an array