Recursion
• Recursion is a fundamental programming
technique that can provide an elegant solution
certain kinds of problems
Recursive Programming
// This method returns the sum of 1 to num
// 1 + 2 + 3 + … + num
public int sum (int num){
Problem?
return num + sum (num-1);
}
Recursive Programming
// This method returns the sum of 1 to num
// 1 + 2 + 3 + … + num
public int sum (int num){
if ( num == 1 )
return 1;
else
return num + sum (n-1);
}
Recursive Programming
result = 6
main
sum(3)
result = 3
sum
sum(2)
// 1 + 2 + 3 + … + num
public int sum (int num){
result = 1
sum
if ( num == 1 )
return 1; sum(1)
else
return num + sum (n-1);
}
sum
Recursive Factorial
// This method returns the n!
// 1 * 2 * 3 * … * n
int fact( int n ){
if( n <= 1 ){
return 1;
} else {
return n * fact( n-1 );
}
}
Recursive Binary Search
int BinarySearch( int[] array, int start, int end, int target ){
int middle = ( start + end ) / 2;
if( end < start ) return -1;
if( target == array[ middle ] ){
return middle;
}
else if( target < array[ middle ] ){
return BinarySearch( array, start, middle-1, target );
}
else {
return BinarySearch( array, middle+1, end, target );
}
}