recursion : Java Glossary
home R words local find no local find frame, full screen Google search web for topic jump to footer translate with Babelfish by Roedy Green ©1996-2008 Canadian Mind Products
Go to : punctuation 0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z (all)
recursion
In Java, a method may call itself. This is called recursion. You do not need to make any special declarations to make this possible. The trick is used mainly in exercises given in computer science class. In the real world, recursion has a bad name because you can overflow the stack if you are call yourself too many times without returning. If you recurse too deeply you will get a StackOverFlowError. Further, most cute recursive algorithms can be specified more efficiently with loops. The classic practical recursive algorithm is QuickSort. The classic student problem is to calculate n! with or without recursion.

Sometimes, recursion is indirect. Method a calls method b which in turn calls method a which in turn calls b.

Sometimes, you accidentally use recursion when you insert a call to the old method a in an overridden method a, and forget to say super. a();

Recursion to Descend A Directory Tree

Here is how you would delete all the files in the directory tree using recursion.

Fibonacci Recursion

“The usual way to apply recursion is to divide a maxi-problem into two or more mini-problems, solve the minis, and combine their solutions to find the answer to the maxi-problem. The recursive aspect means that you apply the same technique to solve the mini-problems: Split them into micro-problems, solve the micros, and combine their solutions to solve the minis. And the micro-problems split into nano-problems, and so on. As the levels descend you eventually arrive at problems that are so small they can be solved by some other means (this is sometimes called the ground case).

Each small problem’s solution is passed back to the recursive step that asked for it, where it gets combined with the solutions of other small problems to solve the larger problem.”
~ Eric Sosman


CMP_homejump to top
CMP logo
feedback Please email your feedback for publication, errors, omissions, broken/redirected link reports
and suggestions to improve this page to Roedy Green : feedback email
made with CSS
HTML Checked!
ICRA ratings logo
mindprod.com IP:[65.110.21.43]
Your face IP:[38.103.63.16] The information on this page is for non-military use only.
You are visitor number 15,638. Military use includes use by defence contractors.
You can get a fresh copy of this page from: or possibly from your local J: drive (Java virtual drive/Mindprod website mirror)
http://mindprod.com/jgloss/recursion.html J:\mindprod\jgloss\recursion.html