Red de conocimientos turísticos - Conocimientos sobre calendario chino - ¿Por qué rara vez se utiliza la recursividad en la programación?
¿Por qué rara vez se utiliza la recursividad en la programación?
Por ejemplo, una pila es similar a un cubo. Las cosas que se empujen dentro del balde se presionarán contra el fondo del mismo, y las cosas que se empujen hacia atrás se colocarán en la superficie del balde. Cada vez que se llama a una función, hay una sobrecarga adicional. Cuando una función principal llama a una función secundaria, primero guardará el estado actual de la función principal en un registro, incluida la información de la dirección de instrucción actual. Es similar a poner esta información primero en la parte inferior del depósito y luego colocarla. parámetros de función secundaria y otra información en el cañón, es decir, la superficie del cañón. Después de ejecutar la función secundaria, la información que se acaba de colocar en el depósito para ejecutar la función secundaria se eliminará de la pila y el depósito mostrará la siguiente instrucción de la función principal que se guardó originalmente en la parte inferior del depósito. Porque cada vez que se llama a una función, hay operaciones push y pop similares, y la recursividad significa que la función misma se llama a sí misma. Por supuesto, también ocurrirán operaciones push y pop similares, lo que generará una sobrecarga adicional.
Cuando no es recursivo, es decir, cuando se itera, es una operación de bucle dentro de la misma función y no hay sobrecarga causada por llamar a subfunciones, por lo que en la mayoría de los casos, el no recursivo La forma es ligeramente más pequeña que la forma recursiva rápida. Además, la recursividad consume más memoria que la iteración porque las variables definidas en diferentes niveles de recursividad requieren una asignación de memoria adicional, a diferencia de la no recursividad, que solo se define una vez y se asigna solo una vez.