Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Recursividad

Iniciado por Douch, 06 de Abril de 2005, 02:39:04 PM

« anterior - próximo »

Douch

 Joer, estoy hoy que arraso a base de pregunas :P

Bueno, ahora estoy con un problema que usa recursividad, y me estaba planteando una preguntilla sobre recursos del sistema. Os pongo en situación:

Tengo una variable, por ejemplo un entero, en la que almaceno un valor introducido por el usuario que servirá para una comparación dentro de la función recursiva. Que usaría menos recursos (o en su defecto, que sería mejor), ¿declarar una variable global o pasarle el valor a la función recursiva?

Yo creo que declarar una variable global es el mejor método, aunque no se si ésto contravendría alguna norma para mantener la coherencia o facilidad de mantenimiento del código.

sés

 Si es variable solo la utiliza la función recursiva y si no tienen ninguna tarea que pueda usar la variable o la función... global consume menos memoria.

Si la pasas a la función será más portable y... ¿tantas llamadas recursivas se harán para que importe pasar una variable?
Soy indeciso... ¿o no?

zupervaca

 puedes hacer una estructura de datos que se pase a la funcion y asi podras poner todas las variables que quieras  ;)  

Buffon

 piensa que en algun momento ese proceso, por alguna razon se pueda llamar desde varios threads.

si esa variable la haces global, la has cagao un poco >_<

mientras que si la pasas por parametro te salvas que cada thread ejecute su propia funcion.

además a la hora de estudiar la algorismia queda de forma más clara utilizar las variales en la PRE y en la POST de la propia funcion y no de una variable global.

además que es un int pasado ? por que si la variable no fuese int se pasaria puntero que tiene el mismo tamaño. (4 bytes)


Douch

 Hombre, puse una variable por poner un ejemplo nada más, lo que buscaba era comprender un poco el proceso y que podría resultar mejor para no tirar de muchos recursos, aunque la explicación de Buffon me lo ha dejado todo claro.

Pogacha

 Mejor es no usar recursividad (utilizando la pila del sistema), utiliza una pila propia así tendras el mejor rendimiento en cuanto a memoria y velocidad (para la mayoria de los algoritmos). Si!, se complica un poco más!, de la misma forma que usar c en vez de c++.

Saludos






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.