You are on page 1of 2

Programa de Ingeniería de Sistemas

Asignatura Complejidad Algorítmica


Docente Fran Ernesto Romero
Actividad Taller No. 1: Recursividad y complejidad.

1. Objetivos

 Afianzar los conocimientos adquiridos en lenguajes de programación.


 Fortalecer las habilidades en desarrollo de algoritmos y medición de su complejidad
temporal.

2. Planteamiento

2.1. Medidas Estadísticas

 Elabore una aplicación javascript que genere N números enteros aleatorios.


 Elabore los respectivos algoritmos para calcular el promedio, la desviación estándar, la
moda y la mediana de los números generados.
 Use la aproximación empírica para calcular el tiempo de ejecución T(N) de cada algoritmo.
Permita que su aplicación grafique T(N).
 ¿Puede calcular el desempeño de su programa en Android vs. iPhone?

2.2. Partes de un conjunto1

Las partes de un conjunto A, notado P(A), corresponde al conjunto de todos los subconjuntos
posibles de A. Considere el siguiente algoritmo recursivo para hallar P(A):
# Agregación de n a cada elemento de P(B)
def SP(B, n):
for i in B:
i.append(n)
return B

# P(A): entrada principal.


def P(A):
if not A:
return [[]]
B = A[0:len(A)-1] # B igual A menos su último elemento.
return P(B) + SP(P(B), A[len(A)-1])

Implemente este algoritmo en el lenguaje de su preferencia y utilice el enfoque empírico para


determinar el orden de complejidad de este algoritmo.

3. Condiciones generales

1
Tomado de: http://www.espaciodev.com/foro/ver/5816bf76c2543f7766617691/conjunto-potencia
 Utilice el lenguaje de programación de su preferencia, excepto java.
 El taller se presenta en grupos de 2 estudiantes.

You might also like