Ver Mensaje Individual
  #12 (permalink)  
Antiguo 27/07/2007, 12:12
Avatar de pyanqn
pyanqn
 
Fecha de Ingreso: noviembre-2005
Mensajes: 331
Antigüedad: 19 años
Puntos: 8
Re: Tiempo de ejecucion menor

Bueno, para determinar si usas un metodo recursivo o iterativo, debes de evaluar su tiempo de ejecución primero. Como muestran los ejemplos dados por GreenEyed, los dos algoritmos tinen el mismo orden de ejecución O(n). La diferencia entre ellos es tan solo una constante. Ahora depende de ti, lograr que esa constante sea lo mas pequeña posible para que tu algoritmo sea mas eficiente. El overhead del algoritmo recursivo es alto, recuerda que en cada llamada a un metodo, se generan en la pila un nuevo registro de activación, aquí, el costo es muy alto!!

Yo te aconsejaria uses recursividad solo cuando esta tenga un impacto significativo. es decir ciertos algoritmos se comportan de forma optima para entradas pequeñas o medias, pero luego escalan a ordenes intolerables! ese es otro punto a tener en cuenta. Para que no te ocurra que tu algoritmo sea optimo, como suele ocurrir con algoritmos de ordenamiento, en los cuales, la ventaja se ve en grandes entradas de datos, pero para pequeñas, su comportamiento no significativamente menor al de uno algoritmo lineal.

Saludos