Hola Alguien me podría ayudar por favor a saber el por que la recursividad no se vuelve infinita? Es que no encuentro el caso base, y si ...

Braulio Alejo Aguilar

Braulio Alejo Aguilar

Pregunta
studenthace 4 años

Hola

Alguien me podría ayudar por favor a saber el por que la recursividad no se vuelve infinita?

Es que no encuentro el caso base, y si no tuviera caso base se volvería infinito el dividir la lista del lado izquierdo

3 respuestas
para escribir tu comentario
    Julian Alejandro Archila Caro

    Julian Alejandro Archila Caro

    studenthace 4 años

    Hola, te recomiendo ver este video sobre los call stacks. Me ayudo mucho a entender como se acumulan los frames, en donde se detienen y como se resuelven.

    Nicoll Idaly Angulo Mejia

    Nicoll Idaly Angulo Mejia

    studenthace 4 años

    En los vídeos no se vuelve infinita porque siempre se elige el caso base, por ejemplo cuando ya no haya más elementos en la lista

    Rafael Alejandro Santos Trujillo

    Rafael Alejandro Santos Trujillo

    studenthace 4 años

    Precisamente eso es lo peligroso de la recursividad... caer en un ciclo infinito. Si creamos una función sin caso base, obtendremos el equivalente recursivo de un bucle infinito. Sin embargo, como cada llamada recursiva agrega un elemento a la pila de llamadas a funciones y la memoria de nuestras computadoras no es infinita, el ciclo deberá terminarse cuando se agote la memoria disponible.

    En particular, en Python, para evitar que la memoria se termine, la pila de ejecución de funciones tiene un límite. El límite por omisión es de 1000 llamadas recursivas. Es posible modificar el tamaño máximo de la pila de recursión mediante la instrucción sys.setrecursionlimit(n). Sin embargo, si se está alcanzando este límite suele ser una buena idea pensar si realmente el algoritmo recursivo es el que mejor resuelve el problema.

Curso de POO y Algoritmos con Python

Curso de POO y Algoritmos con Python

Comprende la eficiencia algorítmica con Python. Analiza complejidad temporal y espacial, visualiza resultados y resuelve problemas de optimización. Ideal para desarrollar habilidades esenciales en el análisis de algoritmos.

Curso de POO y Algoritmos con Python
Curso de POO y Algoritmos con Python

Curso de POO y Algoritmos con Python

Comprende la eficiencia algorítmica con Python. Analiza complejidad temporal y espacial, visualiza resultados y resuelve problemas de optimización. Ideal para desarrollar habilidades esenciales en el análisis de algoritmos.