Skip to content

IC-3002/ic-3002-2020ii-tc5-MarcoMadrigal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IC-3002 Tarea corta 5

Considere el siguiente problema computacional:

Problema: Ordenar una secuencia de números enteros.

  • Entradas: tal que
  • Salidas: La secuencia ordenada de manera tal que

Este problema se puede resolver, entre otras opciones, con el algoritmo de ordenamiento por burbuja. En el archivo burbuja.py, la función burbuja implementa dicho algoritmo sobre una lista.

  1. Implemente en el archivo burbuja.py la función burbuja_optimizado como una mejora a la función burbuja tomando en cuenta que si en un recorrido no hizo intercambios es porque la lista ya está ordenada.

  2. Implemente en el archivo burbuja_test.py las funciones test_mejor_caso, test_peor_caso, test_caso_promedio para probar correspondientemente los casos mejor, peor y promedio de burbuja_optimizado. Cada prueba debe verificar la complejidad temporal esperada para el caso correspondiente.

Importante: para poder verificar la complejidad temporal utilizando la biblioteca big_O, debe programar funciones generar_mejor(n), generar_peor(n) y generar_promedio(n) que retornan, cada una, una lista de enteros de tamaño n cuyo contenido representa una instancia del caso.

Cómo instalar el ambiente de desarrollo y ejecutar las pruebas localmente

Este proyecto requiere python3. Asegúrese que esté instalado en su distribución de linux.

Si no lo ha hecho anteriormente, crear un ambiente virtual para las dependencias

python3 -m venv .venv

Activar el ambiente virtual

source .venv/bin/activate

Instalar las dependencias

pip3 install -r requirements.txt

Ejecutar las pruebas

pytest -s -W ignore::DeprecationWarning

Rúbrica

Completitud (5 pts)

  • (5 pts) La producción cumple totalmente con los requerimientos solicitados.
  • (3 pts) La producción cumple parcialmente con los requerimientos solicitados.
  • (1 pts) La producción, en su mayor parte, no cumple con los requerimientos solicitados.

Correctitud (5 pts)

  • (5 pts) El código pasa exitosamente todas las pruebas automatizadas.
  • (3 pts) El código pasa la mayoría de las pruebas automatizadas.
  • (1 pts) El código no pasa la mayoría de las pruebas automatizadas.

Optimización (5 pts)

  • (5 pts) El código optimizado mejora el tiempo de ejecución del código original.
  • (3 pts) El código optimizado corre en un tiempo de ejecución semejante al del código original.
  • (1 pts) El código optimizado empeora el tiempo de ejecución del código original.

About

ic-3002-2020ii-tc5-MarcoMadrigal created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages