RE: Java Questions Again: What's So Great About Recursion

  • From: "Ken Perry" <whistler@xxxxxxxxxxxxx>
  • To: <programmingblind@xxxxxxxxxxxxx>
  • Date: Thu, 7 Apr 2011 14:11:36 -0400

 

 

Tylor is correct that recursion is great on algorithms that deal with trees
whether it is for sorting or searching or even writing or reading them from
or to disk.  

 

A couple more reasons for them.

 

1)      They can make rather large loops look really small and easy to
upkeep at the cost of memory.  Note how cheap memory is now days.

2)      Some things are just easier to do with recursion for example the
knights tour problem is not so easy to do with loops

3)      Some weird languages don't have great looping structures and
recursion can help you there.

 

Now if you're in for a good joke just search for "recursion" on google.  You
will notice that the google programmers can be funny.  Google will ask you.
Did you mean recursion?  Then you click on that and guess what it asks if
you mean "recursion"?  again. You can click that all day long if you like.

 

Ken

 

From: programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Stanzel, Susan -
Kansas City, MO
Sent: Thursday, April 07, 2011 1:45 PM
To: programmingblind@xxxxxxxxxxxxx
Subject: RE: Java Questions Again: What's So Great About Recursion

 

Hi Listers,

 

I have asked the Java teacher to enlighten me on this subject of recursion.
I have wondered what it was for also, but it was just one of those things I
didn't bother to ask.

 

Susie

 

From: programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Stanzel, Susan -
Kansas City, MO
Sent: Thursday, April 07, 2011 12:32 PM
To: programmingblind@xxxxxxxxxxxxx
Subject: RE: Java Questions Again: What's So Great About Recursion

 

Hi Listers,

 

Java has a serialization mechanism to do that kind of tracking.

 

Susie

 

From: programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Homme, James
Sent: Thursday, April 07, 2011 12:16 PM
To: programmingblind@xxxxxxxxxxxxx
Subject: RE: Java Questions Again: What's So Great About Recursion

 

Hi Ty,

Is it done when it has finished reading the file?

 

Thanks.

 

Jim

 

Jim Homme,

Usability Services,

Phone: 412-544-1810. Skype: jim.homme

Highmark recipients,  Read my accessibility blog
<http://mysites.highmark.com/personal/lidikki/Blog/default.aspx> . Discuss
accessibility here
<http://collaborate.highmark.com/COP/technical/accessibility/default.aspx> .
Accessibility Wiki: Breaking news and accessibility advice
<http://collaborate.highmark.com/COP/technical/accessibility/Accessibility%2
0Wiki/Forms/AllPages.aspx> 

 

From: programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Littlefield,
Tyler
Sent: Thursday, April 07, 2011 12:59 PM
To: programmingblind@xxxxxxxxxxxxx
Subject: Re: Java Questions Again: What's So Great About Recursion

 

Jim:
Recursion has a limited number of applications where it is actually more
useful than a loop, I'll give one I use it for.
In my game engine, properties are stored in a tree setup with a root
property and all other properties work from there. so, you could essentially
have stats.health, stats.mana, etc. stats is the root node, health are the
children nodes on stats.
Now, here's where recursion comes in handy.
when I serialize this tree, I write it all in xml. so I'll serialize the
stats, then I'll serialize health. what I do is something like this:
Serialize(XMLNode, property)
so lets say that stats.health has two properties: stats.health.hp, and
stats.health.max_hp. in order to serialize that I would have to loop through
the properties of stats.health, then if hp were to have another property I'd
have to loop through those, which could get messy.
Rather than do that though, I use recursion. so the serialization setup
calls serialize on stats, passing the root, then that function calls
serialize on stats.health passing health.
I hope I explained that properly. Essentially in summary, it allows me to
keep passing in each node of the tree until I am finally done. I can recurse
until I get done serializing a branch, at which point I will pop back to
where i was because the recursion will return when it's done.

On 4/7/2011 10:51 AM, Homme, James wrote: 

Hi, 

It's probably my ignorance coming out to bite me again, but I just was
reading about recursion in my Java book and thinking that it isn't all that
useful because you can do the same stuff with a loop. Maybe the book
examples are so simple that I just don't see it's usefulness. They were even
saying that recursion eats up more memory than loops do, so I'm wondering
why I learned it in the first place, other than to know how it works and
that it exists. 

  

Please help. 

  

Thanks. 

  

Jim 

  

Jim Homme, 

Usability Services, 

Phone: 412-544-1810. Skype: jim.homme 

Highmark recipients,  Read my accessibility blog
<http://mysites.highmark.com/personal/lidikki/Blog/default.aspx> . Discuss
accessibility here
<http://collaborate.highmark.com/COP/technical/accessibility/default.aspx> .
Accessibility Wiki: Breaking news and accessibility advice
<http://collaborate.highmark.com/COP/technical/accessibility/Accessibility%2
0Wiki/Forms/AllPages.aspx>  

  


This e-mail and any attachments to it are confidential and are intended
solely for use of the individual or entity to whom they are addressed. If
you have received this e-mail in error, please notify the sender immediately
and then delete it. If you are not the intended recipient, you must not
keep, use, disclose, copy or distribute this e-mail without the author's
prior permission. The views expressed in this e-mail message do not
necessarily represent the views of Highmark Inc., its subsidiaries, or
affiliates.

 

-- 
 
Thanks,
Ty

Other related posts: