Está en la página 1de 1

1.

Estudiar los algoritmos de ordenamiento de un arreglo lineal (una lista)


de objetos. En particular, pensaremos estos objetos como enteros. Deben
realizar una análisis de cada uno de los tres algoritmos, y esto debe in-
cluir un análisis de la complejidad temporal usando como operaciones
elementales (es decir, las operaciones que se cuentan para definir T (n))
comparaciones entre dos elementos, y también encontrar la complejidad
temporal cuando la operación elemental son el número de asignaciones en
variables realizadas por el algoritmo.
Adicionalmente, se debe incluir para cada algoritmo una demostración de
que el algoritmo es correcto. Es decir, debe definir, según lo que se ha he-
cho en el notebook de InvarianteBucles, precondición, invariante, guarda,
función cota y postcondición, y verificar que la ejecución del código real-
mente ordena el arreglo dado por entrada. Recuerde que se debe verificar:
• La precondición implica el invariante
• La ejecución de un ciclo, mantiene el invariante
• Si antes de la ejecución del ciclo se cumplen el invariante y el guarda,
entonces el ciclo termina y cuando lo hace se cumple el invariante.
• Al terminar, se debe poder deducir la postcondición.
Haga uso de alguno de los teoremas en el notebook, para poder realizar
la demostración.
Finalmente, use lo aprendido en la Tarea 2, para realizar una rutina en
python, que le permita visualizar el funcionamiento de cada uno de los tres
algoritmos. Muestre una lista de objetos, pueden ser figuras geométricas
de algún tipo, que se puedan ordenar según tamaño digamos, la idea es
que se vaya visualizando el objeto señalado por el primer ı́ndice, el objeto
señalado por el segundo ı́ndice, y se muestren el cambio de posición de los
objetos gradualmente, es decir, cada intercambio debe ser representado.
Coloco acá un link con un ejemplo, de lo que se quiere ver más o menos:
https://visualgo.net/en/sorting
No se preocupen por todos los detalles, sólo que haga lo que se pide. Ir
ordenando los elementos, y mostrar los señalados en cada momento.
Esta tarea tiene un valor del 20% de la nota final, al igual que la tarea
anterior.

También podría gustarte