Uso de recursion en algoritmos repetitivos<\/p>\n
Se dice que una funci\u00f3n es recursiva cuando se define en funci\u00f3n de si misma.<\/span><\/p>\n No todas la funciones pueden llamarse a si mismas, sino que deben estar dise\u00f1adas especialmente para que sean recursivas, de otro modo podr\u00edan conducir a bucles infinitos, o a que el programa termine inadecuadamente.<\/span><\/p>\n Tampoco todos los lenguajes de programaci\u00f3n permiten usar recursividad.<\/span><\/p>\n <\/p>\n C++ permite la recursividad. Cada vez que se llama a una funci\u00f3n, se crea un juego de variables locales, de este modo, si la funci\u00f3n hace una llamada a si misma, se guardan sus variables y par\u00e1metros, usando la pila, y la nueva instancia de la funci\u00f3n trabajar\u00e1 con su propia copia de las variables locales. Cuando esta segunda instancia de la funci\u00f3n retorna, recupera las variables y los par\u00e1metros de la pila y continua la ejecuci\u00f3n en el punto en que hab\u00eda sido llamada.<\/span><\/p>\n Un ejemplo muy clasico de la recursividad es cuando se quiere crear un programa de gdc (greatest commun divisor), en lo cual se puede llamar a si mismo para volver a hacer el mismo procedimiento una y otra vez hasta que una condici\u00f3n sea rota y pueda salir de la recursividad, as\u00ed, te puede dar los resultados de manera que corresponda a lo que uno quiere como podemos ver en la foto.<\/span><\/p>\n <\/span><\/p>\n En este ejemplo como podemos ver la funcion “gcd” puede claramente ser llamada en dos situaciones diferentes, tanto cuando a es mayor que b como en el caso de que a es menor que b haciendo dos recursiones, y rompiendola en caso de que a y b sean iguales.<\/span><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":" Uso de recursion en algoritmos repetitivos<\/p>\n Se dice que una función es recursiva cuando se define en función de si misma.<\/span><\/p>\n No todas la funciones pueden llamarse a si mismas, sino que deben estar diseñadas especialmente para que sean recursivas, de otro modo podrían conducir a bucles infinitos, o a que el programa termine inadecuadamente.<\/span><\/p>\n Tampoco todos los lenguajes de programación permiten usar recursividad.<\/span><\/p>\n <\/p>\n 0 <\/p>\n Normal 21<\/p>\n false ES-TRAD <\/p>\n <\/p>\n \/* Style Definitions *\/ <\/p>\n C++ permite la recursividad. Cada vez que se llama a una función, se crea un juego de variables locales, de este modo, si la función hace una llamada a si misma, se guardan sus variables y parámetros, usando la pila, y la nueva instancia de la función trabajará con su propia copia de las variables locales. Cuando esta segunda instancia de la función retorna, recupera las variables y los parámetros de la pila y continua la ejecución en el punto en que había sido llamada.<\/span><\/p>\n Un ejemplo muy clasico de la recursividad es cuando se quiere crear un programa de gdc (greatest commun divisor), en lo cual se puede llamar a si mismo para volver a hacer el mismo procedimiento una y otra vez hasta que una condición sea rota y pueda salir de la recursividad, así, te puede dar los resultados de manera que corresponda a lo que uno quiere como podemos ver en la foto.<\/span><\/p>\n <\/span><\/p>\n En este ejemplo como podemos ver la funcion “gcd” puede claramente ser llamada en dos situaciones diferentes, tanto cuando a es mayor que b como en el caso de que a es menor que b haciendo dos recursiones, y rompiendola en caso de que a y b sean iguales.<\/span><\/p>\n<\/div>\n
\n 0
\n 1
\n 129
\n 714
\n JBG
\n 5
\n 1
\n 842
\n 14.0<\/p>\n
\n 0<\/p>\n
\n false
\n false<\/p>\n
\n JA
\n X-NONE<\/p>\n
\ntable.MsoNormalTable
\n\t{mso-style-name:”Tabla normal”;
\n\tmso-tstyle-rowband-size:0;
\n\tmso-tstyle-colband-size:0;
\n\tmso-style-noshow:yes;
\n\tmso-style-priority:99;
\n\tmso-style-parent:””;
\n\tmso-padding-alt:0cm 5.4pt 0cm 5.4pt;
\n\tmso-para-margin:0cm;
\n\tmso-para-margin-bottom:.0001pt;
\n\tmso-pagination:widow-orphan;
\n\tfont-size:12.0pt;
\n\tfont-family:Cambria;
\n\tmso-ascii-font-family:Cambria;
\n\tmso-ascii-theme-font:minor-latin;
\n\tmso-hansi-font-family:Cambria;
\n\tmso-hansi-theme-font:minor-latin;}<\/p>\n