• Viernes 17 de Mayo de 2024, 05:54

Autor Tema:  Re: recursividad  (Leído 1016 veces)

mister

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: recursividad
« en: Jueves 3 de Abril de 2003, 11:07 »
0
Alguien me puede ayudar a explicarme brevemente que es la recursividad.
muchas gracias

gmantil

  • Miembro MUY activo
  • ***
  • Mensajes: 121
    • Ver Perfil
Re: recursividad
« Respuesta #1 en: Viernes 4 de Abril de 2003, 14:38 »
0
La recursividad es el mecanismo mediante el cual un módulo se invoca a si mismo. Hay operaciones que son recursivas por naturaleza, como el factorial:

5! = 5 * 4 * 3 * 2 * 1
4! = 4 * 3 * 2 * 1
3! = 3 * 2 * 1
2! = 2 * 1
1! = 1

Luego yo puedo decir que:

5! = 4! * 5
4! = 3! * 4
3! = 2! * 3
2! = 1! * 2
1! = 1

Entonces bajo ese criterio yo puedo expresar esto como la función:

factorial(5) = factorial(4) * 5 y así sucesivamente.

Observe que la función tiene dos comportamientos:

factorial(n) = factorial(n-1) * n
Cuando n<>1
y
factorial(n) = 1
Cuando n = 1

Luego la función sería:

factorial(int n)
{
   if(n>1)
      return(n*factorial(n-1));
   else
      if(n==1)
         return(1);
}

Vea que la función factorial es llamada de nuevo desde la misma función factorial. Eso es la recursividad.

Sinembargo, le recomiendo usar la recursividad solo en los casos que no pueda usar operaciones cíclicas, pues el cambio de contexto consume mucho recurso.

gmantil

mister

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
recursividad
« Respuesta #2 en: Viernes 4 de Abril de 2003, 19:39 »
0
Muchas gracias por la explicacion.Me quedo todo bastante claro, si en algún otro momento tengo alguna duda te buscaré por aki.:gracias::good: