Hoja de ejercicios de Algoritmos y complejidad con soluciones
Hoja de ejercicios de Algoritmos y complejidad gratis e imprimible: 8 problemas desde nivel fácil hasta nivel de examen, con soluciones. Imprímela o guárdala como PDF.
Para docentes: pueden imprimirla, copiarla y usarla en clase gratis. Cada hoja nueva tiene valores nuevos y su propia clave de respuestas. Agradecemos un enlace a ExamProblems en la página de tu curso.
Nombre: ____________________ Fecha: ____________
1.Fácil
¿Qué es la memoización?
ALiberar memoria cuando una función termina
BGuardar los resultados de las llamadas a funciones para responder desde memoria a las llamadas repetidas
CConvertir automáticamente la recursión en un bucle equivalente para que no haga falta pila de llamadas
DEscribir comentarios junto a cada línea de código
2.Fácil
Un algoritmo O(n²) tarda 1 segundo para n = 1000. ¿Aproximadamente cuánto tarda para n = 2000?
A1 segundo
B4 segundos
C8 segundos
D2 segundos
3.Fácil
¿Cuál es la complejidad temporal en el peor caso del ordenamiento por inserción?
AO(n²)
BO(n log n)
CO(n)
DO(log n)
4.Media
Una función ejecuta un bucle de n iteraciones y después, por separado, otro bucle de n iteraciones. ¿Cuál es su complejidad temporal?
AO(log n)
BO(2ⁿ)
CO(n)
DO(n²)
5.Media
¿Cuál es la solución de la recurrencia T(n) = T(n/2) + O(1)?
AO(log n)
BO(1)
CO(n log n)
DO(n)
6.Media
La complejidad temporal de Fibonacci recursivo ingenuo (fib(n) = fib(n−1) + fib(n−2)) es:
AExponencial
BLineal
CLogarítmica
DConstante
7.Difícil
¿Qué técnica proporciona a quicksort un tiempo de ejecución esperado de O(n log n) para cualquier entrada?
AElegir siempre el primer elemento
BUsar recursión solo en el lado izquierdo
CElegir el pivote de forma uniformemente aleatoria
DOrdenar la entrada antes de ejecutar quicksort
8.Difícil
¿Cuál es el coste amortizado de incrementar un contador binario, sabiendo que un incremento puede cambiar muchos bits?
AO(n log n) por incremento
BO(n) por incremento
CO(log n) por incremento
DO(1) por incremento
Soluciones
1. B · Guardar los resultados de las llamadas a funciones para responder desde memoria a las llamadas repetidas
2. B · 4 segundos
3. A · O(n²)
4. C · O(n)
5. A · O(log n)
6. A · Exponencial
7. C · Elegir el pivote de forma uniformemente aleatoria
8. D · O(1) por incremento
Soluciones completas paso a paso: practica este tema en examproblems.com.