Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Integrantes:
Daniel Saigua Labre
Edwin Ullaguari León
Miguel Murillo Arteaga
Yu Chen Tai
Materia:
Análisis de Algoritmos
Profesora:
Phd. Ana Tapia Rosero
Fecha:
28 de noviembre de 2018
Paralelo #1
¿Qué es un Heapsort?
Heapsort es una técnica de ordenamiento basada en comparación que utiliza una estructura
de datos montón binario (Binary Heap). Es similar a Selection Sort en donde se encuentra el
máximo elemento del arreglo y se lo coloca al final, repitiendo el mismo proceso para los
elementos restantes.
binario en el cual cada nivel, excepto posiblemente el último, está completamente lleno, y
Un Binary Heap es un árbol binario completo en donde los elementos están guardados en
un ordenamiento peculiar de tal forma que el valor en un nodo padre es mayor que los valores
en sus dos nodos hijos, aunque también podría ser, al contrario. El primero se llama máximo
montón (Max Heap) y el último se llama mínimo montón (Min Heap). El montón se puede
indexaciones que empiezan desde el valor cero. Para indexaciones que inician desde el valor
De manera general el algoritmo HeapSort se define en tres pasos, los cuales se especifican
a continuación:
2. En este punto, el elemento más grande está guardado en la raíz del Heap. Se procede a
reemplazarlo con el último elemento del Heap, para luego reducir el tamaño de este
3. Se repiten los puntos arriba mencionados mientras el tamaño del Heap sea mayor a
uno.
Implementación de Heapify
denominado i que servirá como índice para darle uso a cada posición del arreglo:
● Entrada: Left(i) y Right(i) son heaps, pero A[i] puede ser menor que sus hijos.
● Salida: Heapify mueve A[i] hacia abajo para que al subárbol con raíz i sea un heap.
● Ahora tomando en cuenta el peor caso, para la medida del subárbol es 2n/3. Esto
● Observar que los nodos hojas, ya ahora son heap. Éstos están en A [⌊ (n/2+1) ⌋.. n].
cada uno.
Ejemplo:
Análisis del tiempo de ejecución
● Luego el costo es
2. Cambiar el elemento inicial, la raíz y mayor elemento, del heap con el último.
finalidad de que encuentre los procesos que tienen la mayor carga de prioridad dado
una lista de actividades con un tiempo determinado. Con lo cual se dice que un
tal función.
Referencias
https://www.geeksforgeeks.org/heap-sort/
web.com/teaching/mat/discretas/ad17/proyecto/1740088.pdf
González, A.J. (2015, Junio 4). ELO 320: Estructura de Datos y Algoritmos.