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
Recommended Articles