Funciones recursivas e iterativas
Según explicó mi profesora de programación una función recursiva es aquella que se llama así misma tantas veces como sea necesario para lograr algo. Y una funcion iterativa es un bucle (for o while) que tambien se repite para lograr algo.
Según ella es mucho mas útil una función recursiva que hacerlo con un bucle, lo cual no estoy de acuerdo y hago este thread para que dejen sus opiniones y fundamentos aver si puedo aclarar un poco mi duda. Voy a dar dos ejemplos simples hechos en python. HTML Code:
def max_value_iterativa( nList ): HTML Code:
lista = [ 0, 20, 15, 35, 2 ]; La función iterativa: Se carga el bloque en memoria de la funcion en memoria una sola vez y cuando termina se borra de la memoria. La función recursiva: Por cada item de la lista se va a cargar el bloque de la función en memoria. O sea que si tengo 5 valores en la lista y el bloque (por dar un ejemplo) ocupa 100B en memoria, en el momento que estén los 5 bloques simultaneamente en memoria se van a ocupar 500B de memoria. Y en la función iterativa solo se carga una vez en memoria. Vuelvo a preguntar, ¿Tengo razón? |
Re: Funciones recursivas e iterativas
Aver si entendi , ella prefiere como ir chequeando valor por valor para ver si pertenece y si es asi , se ejecuta el bucle ? Sino no entendi bien a lo que quiere llegar.
|
Re: Funciones recursivas e iterativas
Quote:
http://nelsongaldeman.com.ar/clase2.pdf |
Re: Funciones recursivas e iterativas
yo estoy de acuerdo con vos... nose si te acordas la vez q preguntaste por un plugin que hacias que no le alcanzaba la memoria... era por q estabas haciendolo de forma recursiva y no liberabas nunca la memoria xD
|
Re: Funciones recursivas e iterativas
Por lo que veo , ella trata de declarar una funcion.
Primero hace un chequeo de la funcion y si es correcta manda un mensaje , sino le resta un numero. Me parece un razonamiento relativamente logico y correcto. Vos decis de hacer el chequeo adentro del while ? fuera de contexto , el ejemplo que diste , los parametros no coinciden con la funcion que distes. |
Re: Funciones recursivas e iterativas
Quote:
PD: No coinciden pero los dos ultimos parámetros son opcionales porque tienen asignado un valor por defecto. |
Re: Funciones recursivas e iterativas
Pero para como lo entendi yo esta bien (Lo que escribi)? Porque no estoy seguro de entender la logica con la cual ella quiere dar el mensaje.
|
Re: Funciones recursivas e iterativas
#Lucas
No importa el resultado, quiere saber cuál método es "mejor". #Neeeel Algo simple, Las funciones iterativas son más rápidas que las funciones recursivas. Si hay problemas con la memoria se recomienda usar iteración de lo contrario obtendrás un consumo mayor porque en recursividad la memoria no se libera en cada lectura. Las funciones recursivas se usa más para indagar en funciones matemáticas más complejas que para mostrar un output sencillo (a no ser que le output sea de una lista de lista (O quizás más profundo (Listas anidadas) aún como una lista de lista de lista) se entiende no?) Ya que salen mucho más natural y sencillo que estar mostrando valor por valor con un bucle. La recursividad se usa mucho en estructuras complejas como las de tipo Árbol en las cuales un ciclo no puede igualarlo ni suplantarlo. En fin, si pueden realizar su función de manera iterativa y recursiva, prefieran la forma NO recursiva. |
Re: Funciones recursivas e iterativas
No tengo idea como maneja Python la memoria, pero la funcion recursiva (lo que me acuerdo de esa clase) es una funcion que se usa frecuentemente en otras clases, aunque solo nos explico un ejemplo parecido, creeria que es mas para evitar re-escitura de codigo y agregar un poquito mas de dinamismo al code.
|
Re: Funciones recursivas e iterativas
Las funciones recursivas son infinitas por defecto, amenos de que estas se paren por algún error o motivo, mientras que las iterativas si estan bien programadas, solo llegan a cierto numero de iteraciones.
En mi opinión lo que dice gladius es lo más acertado, si se puede utilizar una iteración, usen la iteración, no todos los ensambladores manejan de la misma manera la memoria. |
All times are GMT -4. The time now is 06:51. |
Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.