Difference between recursion and iteration - JavaScript

Hi,

Can you please provide me a simple example on:

Difference between recursion and iteration - JavaScript

Thanks
milani_lucieAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
leakim971Connect With a Mentor PluritechnicianCommented:
Test page (recursion) : http://jsfiddle.net/Mjzkk/
function factorial_recursion(n) {
      if(n!=1) n * factorial_recursion;
}

Open in new window


test page (iteration) : http://jsfiddle.net/Kvmrc/
function factorial_iteration(n) {
    a = n;
    while(n!=1) {
        n = n -1;
        a *= n;
    }
    return a;
}

Open in new window


http://en.wikipedia.org/wiki/Factorial
0
 
Gurvinder Pal SinghConnect With a Mentor Commented:
0
 
leakim971PluritechnicianCommented:
correction (recursion) :
function factorial_recursion(n) {
    if(n!=1) n = n * factorial_recursion(n-1);
    return n;
}

Open in new window

0
The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

 
leakim971PluritechnicianCommented:
to be mathematicaly correct (and not just for the example) : 0! = 1
so :

function factorial_recursion(n) {
      if(n==0) return 1;
      if(n!=1) n * factorial_recursion(n-1);
      return n;
}

Open in new window

and :
function factorial_iteration(n) {
    if(n==0) return 1;
    a = n;
    while(n!=1) {
        n = n -1;
        a *= n;
    }
    return a;
}

Open in new window

0
 
sonawanekiranConnect With a Mentor Commented:
Recursion repeatedly invokes the mechanism itself as explained by @leakim971 using factorial number. Both iteration and recursion are based on a control structure. Iteration explicitly uses a repetition structure; recursion achieves repetition through repeated method calls.

Keep in Mind:

Recursion consequently the overhead of method calls. This can be expensive in both processor time and memory space.
0
 
user_nConnect With a Mentor Commented:
Recursion invokes the function itself. If you do not stop the process right it might proceed forever. It takes more space in the stack of the computer (http://en.wikipedia.org/wiki/Call_stack), because of witch it usually takes more time and memory.But in some cases it is the easiest way of finding of programing solution to a problem. Some more info (http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/video-lectures/)
0
All Courses

From novice to tech pro — start learning today.