Está en la página 1de 13

Manejo de memoria estática y

dinámica

Ing. Sandra Navarrete, Mba.


Gestión Automática de Memoria
Gestión Automática de Memoria
REFERENCE COUNTING
 tenemos dos bloques de memoria, el
primero está apuntado por p y q y el
segundo por r

 Si se produce la asignación q:=r, la


situación cambia a:

 Tras la asignación p:= q, el contador del


primer bloque se anula y podemos
liberarlo:

Referencias circulares
Gestión Automática de Memoria
TECNICA DE MARCADO
Gestión Automática de Memoria
BORRADO NORMAL
Definición de Recursividad
Recursividad
Método Iterativo
EJ:
Recursividad
Método Recursivo
EJ:
Recursividad

Cada vez que se Un método recursivo


Cada llamada supone debe contener:
produce una nueva
hacerlo a un método
llamada al método se • Uno o más casos base:
diferente, copia del
crean en memoria de casos para los que existe
original, que se ejecuta una solución directa.
nuevo las variables y
y devuelve el resultado • Una o más llamadas
comienza la ejecución
a quien lo llamó. recursivas: casos en los
del nuevo método.
que se llama sí mismo
Recursividad
SI n=4 entonces
Factorial(4) retorna = 4* factorial(3)
n =4*6
= 24
SI n=3 entonces
n-1 Factorial(3) retorna = 3 * factorial(2)
=3*2
=6

n-2 SI n=2 entonces


Factorial(2) retorna = 2 * factorial(1)
=2*1
=2
n-3 SI n=1 entonces
Factorial(1) retorna = 1 * factorial(O)
=1*1
=1
n-4
SI n=O entonces Factorial(O) retorna =1
Recursividad

Para medir la eficacia de un algoritmo recursivo


se tienen en cuenta tres factores:
• Tiempo de ejecución
• Uso de memoria
• Legibilidad y facilidad de comprensión
La recursividad y la pila de llamadas a métodos
PILA print (Factorial(4))

1) 2) 3) 4) 5) 6) 7) 8) 9)
Parte Superior de Parte Superior de Parte Superior de Parte Superior de Parte Superior de Parte Superior de Parte Superior de Parte Superior de Parte Superior de
la Pila la Pila la Pila la Pila la Pila la Pila la Pila la Pila la Pila

Factorial(3) Factorial(2) Factorial(1) Factorial(0) =1


Factorial(4) 1*2 =2 2*3 =6 6*4 = 24
*4 *3 *2 *1=1 Imprimir 24
imprime retorno retorno retorno
retorna retorna retorna retorna

*4 *3 *2 *3 *4
imprime Imprimir
retorna retorna retorno retorno retorno

*4 *3 *4
Imprimir
imprime retorna retorno retorno

*4
imprime Imprimir
retorno

Imprimir
La recursividad y la pila de llamadas a métodos

Fibonacci(3)

Fibonacci(2) + Fibonacci(1)

Tarea: realizar un
diagrama que
represente la pila Fibonacci(1) + Fibonacci(0) Return 1
para la instrucción
print fibo(4)
Return 1 Return 0

También podría gustarte