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é complejidad suele tener un algoritmo con dos bucles anidados que se ejecutan n veces cada uno?

  1. AO(n²)
  2. BO(log n)
  3. CO(2n)
  4. DO(n)
2.Fácil

¿Qué es la memoización?

  1. AEscribir comentarios junto a cada línea de código
  2. BGuardar los resultados de las llamadas a funciones para responder desde memoria a las llamadas repetidas
  3. CLiberar memoria cuando una función termina
  4. DConvertir automáticamente la recursión en un bucle equivalente para que no haga falta pila de llamadas
3.Fácil

¿Cuánta memoria adicional usa un merge sort estándar basado en arrays?

  1. AO(log n)
  2. BO(n)
  3. CO(n²)
  4. DO(1)
4.Media

¿Qué algoritmo de ordenación es estable?

  1. AQuicksort (versión in situ habitual)
  2. BOrdenamiento por selección (versión habitual)
  3. CHeap sort
  4. DMerge sort
5.Media

¿Qué calcula el algoritmo de Floyd-Warshall y con qué rapidez?

  1. AUn orden topológico en O(V²)
  2. BLos caminos más cortos desde un vértice origen hasta todos los demás en O(V + E)
  3. CLos caminos más cortos entre todos los pares de vértices en O(V³)
  4. DUn árbol de expansión mínima en O(E log V)
6.Media

En el problema de selección de actividades, ¿qué regla voraz da siempre el número máximo de actividades que no se solapan?

  1. AElegir primero la actividad más corta
  2. BElegir primero la actividad con menos solapamientos y repetir con las compatibles
  3. CElegir la actividad que empieza antes
  4. DElegir la actividad que termina antes y repetir con las compatibles
7.Difícil

El problema de la mochila 0/1 resuelto con programación dinámica requiere un tiempo O(nW). ¿Por qué se llama pseudopolinómico?

  1. APorque n siempre es pequeño
  2. BPorque el algoritmo es aleatorizado y su tiempo de ejecución varía con cada entrada
  3. CW es un número, así que el tiempo es exponencial en el número de bits empleados para escribir W
  4. DPorque solo funciona para W = 0
8.Difícil

Usando el teorema maestro, T(n) = 8T(n/2) + O(n²) tiene como solución:

  1. AΘ(n²)
  2. BΘ(n log n)
  3. CΘ(n² log n)
  4. DΘ(n³)

Soluciones

  1. 1. A · O(n²)
  2. 2. B · Guardar los resultados de las llamadas a funciones para responder desde memoria a las llamadas repetidas
  3. 3. B · O(n)
  4. 4. D · Merge sort
  5. 5. C · Los caminos más cortos entre todos los pares de vértices en O(V³)
  6. 6. D · Elegir la actividad que termina antes y repetir con las compatibles
  7. 7. C · W es un número, así que el tiempo es exponencial en el número de bits empleados para escribir W
  8. 8. D · Θ(n³)

Soluciones completas paso a paso: practica este tema en examproblems.com.